我有一个属性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/