我想按一列分组,获得第二列的最小值和最大值,并且(这是棘手的部分!)从第三列中获取值列中第二列在组中的最小值。SQL group by:select value where another column has min/max
实施例:
MyTable的:
ID TS GRP
==================
1 20 A
2 20 B
3 10 A
4 30 A
5 10 B
6 40 A
期望的结果(ID应该从记录中的值,其中TS具有其最小值):
ID MIN_TS MAX_TS GRP
============================
3 10 40 A
5 10 20 B
一般而言,分组的查询很容易:
SELECT <???> AS ID, MIN(TS) AS MIN_TS, MAX(TS) AS MAX_TS, GRP
FROM MyTable
GROUP BY GRP
但是ID部分呢?它不会以分组的方式工作,对吧?但为什么?什么是最好的解决方法?
您需要一个JOIN才能找到该行。 – jarlh
如果有关系怎么办?或者它们不能发生(即你对TS + GRP有独特的限制)? –
你是对的,这就是为什么它不能与分组一起工作... – Andy