我在表格中保存了这些数据。
date | name | code
2020-01-01 | category1 | 0
2020-01-02 | category1 | 1
2020-01-03 | category1 | 2
2020-01-04 | category1 | 3
2020-01-05 | category1 | 0
2020-01-06 | category1 | 1
2020-01-07 | category1 | 2
2020-01-08 | category1 | 0
2020-01-01 | category2 | 0
2020-01-02 | category2 | 0
2020-01-03 | category2 | 1
2020-01-04 | category2 | 0
2020-01-05 | category2 | 1
2020-01-06 | category2 | 2
2020-01-07 | category2 | 0
2020-01-08 | category2 | 1
......
集合中的列代码增加1。
需要获取一组记录中某一列具有最大值的记录。我的示例的结果必须是:
date | name | code
2020-01-04 | category1 | 3
2020-01-07 | category1 | 2
2020-01-03 | category2 | 1
2020-01-06 | category2 | 2
2020-01-08 | category2 | 1
......
最佳答案
这是你想要的吗?
select date, name, code
from (
select
t.*,
lead(code) over(partition by name order by date) lead_code
from mytable t
) t
where not code <= lead_code
对于您的示例数据,this produces :
date | name | code :--------- | :-------- | ---: 2020-01-04 | category1 | 3 2020-01-07 | category1 | 2 2020-01-03 | category2 | 1 2020-01-06 | category2 | 2
关于mysql - 如何使用sql select获取一组记录中一列的最大值结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59934244/