Hey all dies ist die Abfrage, die ich bisher habe:Gesamtanzahl einer Fensterfunktion mit
WITH LIMIT AS
(SELECT
U.userID
,U.username
,U.fname
,U.mname
,U.lname
,U.email
,U.active
,S.sName
,S.sID
,T.[value]
,T.trackingNumberID
,SU.primaryLocation
,row_number() OVER (ORDER BY U.userid) AS RN
,COUNT(*) OVER (ORDER BY U.userid) AS CNT
,UR.roleID
FROM
[---].[dbo].[tblUsers] AS U
LEFT OUTER JOIN [---].[dbo].[tblTrackingNumbers] AS T
ON T.userID = U.userID
LEFT OUTER JOIN [---].[dbo].[tblSU] AS SU
ON U.userID = SU.userID
LEFT OUTER JOIN [---].[dbo].[tblS] AS S
ON SU.sID = S.sID
LEFT OUTER JOIN [---].[dbo].[tblUserRoles] AS UR
ON UR.userID = U.userID
LEFT OUTER JOIN [---].[dbo].[tblRoles] AS R
ON UR.roleID = R.roleID
WHERE
U.active = 1
AND
SU.primaryLocation = 1
AND
SU.active = 1
AND
U.orgID = 1
AND
S.ID = 35
AND U.userID IN (SELECT userID
FROM [---].[dbo].[tblSU] AS SU
INNER JOIN [].[dbo].[tblS] AS S
ON S.sID = SU.sID
WHERE
SU.active = 1
AND
S.sID = 35)
) SELECT * FROM LIMIT WHERE RN Between 0 AND 10000
Wie Sie durch die Abfrage siehe oben Ich versuche COUNT (*) OVER (ORDER BY U. userid) AS CNT was mir die gleiche Anzahl wie RN gibt.
Was ich brauche, ist die Gesamtmenge der Datensätze diese (842 Zeilen) bringen würde wieder.
einfach zählen (*) und nicht partitionieren. Soll das nicht sein, was du brauchst? – scsimon
Ha das war es @a_horse_with_no_name. Bitte machen Sie die offizielle Antwort, damit ich Ihnen Kredit geben kann. – StealthRT
verwenden Sie RN nur zur Begrenzung auf weniger als 1000 Zeilen? Verwenden Sie stattdessen Top oder Fetch zuerst ... viel schneller. – Hogan