SQL-Syntaxklärung auf Row_Number und CTE-Tabellenausdruck

Basierend auf jedem Staat, muss ich die gesamte rxnumber mit diesem Zustand verbunden zu bekommen.

Ich habe versucht meine Syntax, aber es ist nicht Kommissionierung der Max (RxNumber) mit einem Staat verbunden.

with cte as ( select [State], RxNumber, ROW_NUMBER() OVER(PARTITION BY [State] ORDER BY [RxNumber] Desc) as [RowCount] from dbo.RxNumberState ) select [State], MAX([RowCount]) as [TotalRx] from cte Group By [State],[RxNumber] 

Sie müssen RXNUMBER aus Ihrer GROUP BY Klausel entfernen

Versuche dies…

 with cte as ( select [State], RxNumber ,ROW_NUMBER() OVER(PARTITION BY [State] ORDER BY [RxNumber] Desc) as [RowCount] from dbo.RxNumberState ) select [State] ,MAX([RowCount]) as [TotalRx] , MAX(RXNUMBER) MAX_RXNUMBER from cte Group By [State] 

Ein besserer path, dies zu schreiben wäre das folgende, sollte dein Ziel lösen

 select [State] , COUNT(RXNUMBER) as [TotalRx] , MAX(RXNUMBER) MAX_RXNUMBER from dbo.RxNumberState Group By [State] 

Incase gibt es mehrere Einträge der gleichen RXNUMBER dann verwenden COUNT(DISTINCT RXNUMBER)

Ungetestet aber soll dir Ideen geben:

 with cte as ( select distinct [State], rank() OVER(partition by [State] order by [State]) as [StateNumber] from dbo.RxNumberState group by [State] ) select r.[State], count(*) as [TotalRx] from dbo.rxNumberState r join cte c on c.[State] = r.[State] Group By r.[State]