我有一个属性date, name, sex, id, status的表
日期的格式为datetime。
我想按name, sex, id分组,在三个月的窗口中只保留一个数据,并删除其他行。
例如

2017-12-01, A, MALE, 123
2017-10-01, A, MALE, 123
2017-09-01, A, MALE, 123
2016-08-02, A, MALE, 123
2017-09-01, B, MALE, 123
2016-08-02, B, MALE, 123

我只想按这三个属性分组后在三个月的窗口中保留任何行
2017-09-01, A, MALE, 123 (any first three rows work)
2016-08-02, A, MALE, 123
2017-09-01, B, MALE, 123
2016-08-02, B, MALE, 123

我怎么能在SQL中做到这一点呢?

最佳答案

也许这会有帮助:

select name,sex,id
from table
group by name,sex,id
having datediff(mm,date,getdate())<3

如果要删除,则应更改为datediff>3

关于mysql - 如何在三个月的时间内仅保留一行数据并删除其他行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50480360/

10-16 15:55