繁体   English   中英

SQL查询删除多列重复项

[英]SQL query to remove duplicates of multiple columns

我有一百万行的数据库“价格”。

它由3列组成:价格时间框架时间戳

我想删除所有具有相同timeframetimestamp行,但保留一行。

例:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM