我关注的数据如
ano asal
------------------
1 100
1 150
1 190
2 200
2 240
3 300
3 350
4 400
4 400
4 400
我希望从最小的sal到1,从2,3和4 o / p喜欢
ano asal
---------------
1 190
2 240
3 390
4 400
4 400
4 400
答案 0 :(得分:1)
您希望为每个asal
组返回ano
的最大值,但是如果它们存在,您希望保留原始表中的重复项。这意味着你不能只做一个简单的GROUP BY
。但您可以使用GROUP BY
查询来识别最大值,然后通过INNER JOIN
保留这些记录。试试这个问题:
SELECT t1.ano, t1.asal
FROM yourTable t1
INNER JOIN
(
SELECT ano, MAX(asal) AS asal
FROM yourTable
GROUP BY ano
) t2
ON t1.ano = t2.ano AND t1.asal = t2.asal
答案 1 :(得分:0)
您可以通过
使用firt select with group with unionselect ano, max(asal)
from my_table
where ano != 4
group by ano
union all
select ano, asal
from my_table
where ano = 4
order by ano
答案 2 :(得分:0)
SELECT
ano, asal
FROM (
SELECT
data.*,
MAX(asal) OVER (PARTITION BY ano) max
FROM
data)
WHERE
asal = max