date maxval
19/08/2015 1
19/08/2015 2
19/08/2015 2
19/08/2015 1
20/08/2015 6
20/08/2015 7
20/08/2015 8
20/08/2015 9
期望的输出 date maxval 2015年8月19日2 2015年8月19日2 2015年8月20日9
需要重复的最大值,例如,如果19/08/2015在6中是最大值,但我有重复所以要求max和20/08/2015只有一个最大值所以它显示一个最大值请我们如何得到来自sql server query。
"
答案 0 :(得分:1)
这是您的查询
Select date, max(maxval)
from tab
group by date
order by date
答案 1 :(得分:1)
您可以使用DENSE_RANK()
为每条记录在每个日期内排名。然后只需过滤前1(WHERE t.dr = 1
)的记录。使用DENSE_RANK()
而非ROW_NUMBER()
将允许重复:
SELECT Date, MaxVal
FROM ( SELECT Date,
MaxVal,
dr = DENSE_RANK() OVER(PARTITION BY Date ORDER BY MaxVal DESC)
FROM YourTable
) AS t
WHERE t.dr = 1;