22,209
社区成员
发帖
与我相关
我的任务
分享
SELECT * FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY (门数 desc) as row_number,
UserName,StudentID,
(select count(1) from Course C where C.StudentID=T.StudentID) as '门数' from Student
)
AS T
WHERE row_number between 1 and 10
SELECT * FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY (select count(1) from Course C where C.StudentID=T.StudentID) desc) as row_number,
UserName,StudentID,
(select count(1) from Course C where C.StudentID=T.StudentID) as '门数' from Student
)
AS T
WHERE row_number between 1 and 10
SELECT *
FROM ( SELECT T.UserName,
T.StudentID,
COUNT(1) AS 门数,
ROW_NUMBER() OVER (ORDER BY COUNT(1) DESC) [row_number]
FROM Student T
JOIN Course C
ON C.StudentID = T.StudentID
GROUP BY T.UserName,
T.StudentID) a
WHERE row_number BETWEEN 1 AND 10;
SELECT *
FROM ( SELECT T.UserName,
T.StudentID,
SUM(CASE WHEN C.StudentID IS NOT NULL THEN 1 ELSE 0 END) AS 门数,
ROW_NUMBER() OVER (ORDER BY SUM(CASE WHEN C.StudentID IS NOT NULL THEN 1 ELSE 0 END) DESC) [row_number]
FROM Student T
LEFT JOIN Course C
ON C.StudentID = T.StudentID
GROUP BY T.UserName,
T.StudentID) a
WHERE row_number BETWEEN 1 AND 10;