sql >> Databasteknik >  >> RDS >> Sqlserver

Hur får man det totala antalet rader i en körd select-sats?

Du måste antingen använda SELECT COUNT(*) ... med samma villkor eller lägg till en kolumn med radantal via ROW_NUMBER funktion:

SELECT a.Emp,b.orders, RN = ROW_NUMBER () OVER (ORDER BY a.Emp,b.orders) 
FROM table as a inner join table1 b on a.ID=B.ID

...eller använd @@ROWCOUNT efter markeringen.

Istället för ROW_NUMBER det är enklare att använda COUNT(*) OVER (Beställ efter ...) där varje rad innehåller samma totala antal medan ROW_NUMBER skulle returnera ett sekventiellt nummer där endast den sista posten (enligt ORDER BY) ) skulle ha det totala antalet.

Så vad Aaron redan har menat i sitt svar .



  1. Vad exakt gör/denna uppgiftsutlåtande i SAS? PostgreSQL motsvarande?

  2. Hur hittar jag vad som orsakade fel som rapporterats i en SQL Server-profileringsspårning?

  3. DATE ADD-funktion i PostgreSQL

  4. Hitta användare i Laravel efter användarnamn