Jso*_*ham 2 sql t-sql sql-server sql-server-2008 reporting-services
SELECT top 5
day_description,
count(numberofdays) as number
FROM mytable
where department = 'departmentname'
group by day_description
Run Code Online (Sandbox Code Playgroud)
我的选择会带来这样的东西:
day description number
holiday 32
working day 212
training day 5
meeting day 26
admin day 66
Run Code Online (Sandbox Code Playgroud)
是否有一种方法可以添加一个新列,其中1-5位为最高值,1为最高值行,5为最低值行.看起来像这样:
day description number top5ID
holiday 32 3
working day 212 1
training day 5 5
meeting day 26 4
admin day 66 2
Run Code Online (Sandbox Code Playgroud)
也许是这样的:
;WITH CTE
AS
(
SELECT top 5
day_description,
count(numberofdays) as number
FROM mytable
where department = 'departmentname'
group by day_description
)
SELECT
ROW_NUMBER() OVER(ORDER BY CTE.number DESC) AS Top5ID,
CTE.*
FROM
CTE
Run Code Online (Sandbox Code Playgroud)
或者没有CTE:
SELECT
ROW_NUMBER() OVER(ORDER BY t.number DESC) AS Top5ID,
t.*
FROM
(
SELECT top 5
day_description,
count(numberofdays) as number
FROM mytable
where department = 'departmentname'
group by day_description
) AS t
Run Code Online (Sandbox Code Playgroud)