请看下面的mysql表数据。我想做的是每个日期都有 MIN(price),但也选择匹配的 some_id。
SELECT date, MIN(price), some_id
FROM table
GROUP BY date
这是行不通的,因为 mysql 5.7 默认引入了 full group by 模式。
有什么想法吗?请注意,这是一个包含数百万行的庞大表格。
date price some_id
2016-04-09 10.66 3535475
2016-04-09 11.53 2429075
2016-04-09 11.53 2119575
2016-04-09 12.53 1431700
2016-04-09 12.55 2119375
2016-04-10 8.58 885050
2016-04-10 13.20 3535475
2016-04-10 14.27 2429075
2016-04-10 14.27 2119575
2016-04-10 14.70 13591
2016-04-11 11.98 885050
2016-04-11 12.44 2119375
2016-04-11 13.00 3535475
2016-04-11 13.79 2119575
2016-04-11 14.27 2429075
2016-04-11 14.91 13409
2016-04-11 15.38 2152375
2016-04-11 15.64 1431700
最佳答案
尝试将您的查询用作派生表,然后JOIN
返回原始表以获取归档 some_id
:
SELECT t1.date, t1.price, t1.some_id
FROM table t1
JOIN (
SELECT date, MIN(price) as min_price
FROM table
GROUP BY date
) t2 ON t1.date = t2.date AND t1.price = t2.min_price
关于mysql - 选择组中的附加列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39618182/