我不确定标题的措辞是否正确。基本上我的数据看起来像这样:
A B C
1 10 0.6
1 11 0.6
1 12 1.0
1 13 1.0
2 5 0.6
2 4 0.6
我想选择具有最大C值的行。如果结果是重复行,我将选择具有最低B值的行
所以,我期待着
A B C
1 12 1.0
2 4 0.6
对此适当的sql查询是什么?
发布于 2018-06-08 04:51:23
您可以执行以下操作:
select t.*
from t
where (t.b, t.c) = (select t2.b, t2.c
from t t2
where t2.a = t.a
order by t2.c desc, t2.b asc
limit 1
);
Here是一个SQL。
这个版本的好处是它没有聚合,可以利用(a, c, b)
上的索引。
发布于 2018-06-08 04:05:38
SELECT A, B, C
FROM [myTable]
ORDER BY C DESC, B ASC
LIMIT 1
发布于 2018-06-08 04:14:59
在sqlite中,简单的一行代码如下:
select A, min(B), C from tableXXX group by C order by C desc;
https://stackoverflow.com/questions/50749337
复制相似问题