[英]SQL query to remove duplicates of multiple columns
我有一百万行的数据库“价格”。
它由3列组成:价格时间框架时间戳
我想删除所有具有相同timeframe
和timestamp
行,但保留一行。
例:
price timeframe timestamp
14 60 1508407200
1.6 60 1508407200
26 90 1508407200
运行查询后,我将得到:
price timeframe timestamp
14 60 1508407200
26 90 1508407200
您将使用哪种MySql查询来执行此操作?
我可能建议聚合
select max(price) as price, timeframe, timestamp
from prices
group by timeframe, timestamp;
如果您始终知道价格对于给定的timeframe
/ timestamp
组合是唯一的,则可以执行以下操作:
select p.*
from prices p
where p.price = (select max(p2.price) from prices p2 where p2.timeframe = p.timeframe and p2.timestamp = p.timestamp);
这样做的好处是,您很容易在同一行上获得其他列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.