我一直试图按某个键分组,但唯一更高的值。 例如,假设这是我的数据
ID KEY Name Value1 Value2
1 52 James 0.5 0
2 52 Amy 0.2 0.1
3 65 Zeus 0.8 0.3
4 65 Chris 0.1 0
所以当我做的时候
SELECT * FROM MyTable GROUP BY KEY
我得到的结果是
ID KEY Name Value1 Value2
2 52 Amy 0.2 0.1
4 65 Chris 0.1 0
我想要的结果是,
ID KEY Name Value1 Value2
1 52 James 0.5 0
3 65 Zeus 0.8 0.3
我希望它按键分组,但选择属于特定KEY的Value1较高的人。我不想使用
WHERE Value1 > 0.4
有数千条记录,而where语句无济于事。我想知道是否有一种方法可以比较相关KEY之间的Value1或Value2,并在分组时选择更高的值。
希望这很清楚,并提前感谢你。 :)
答案 0 :(得分:2)
首先获取密钥和最大值的查询
SELECT KEY, MAX(Value1) as mValue1
FROM yourTable
GROUP BY KEY
现在加入以获取其余行
SELECT yourTable.*
FROM yourTable
JOIN (
SELECT KEY, MAX(Value1) as mValue1
FROM yourTable
GROUP BY KEY
) AS sub on Sub.KEY = yourTable.KEY and Sub.mValue1 = yourTable.Value1
Ta da!