SQL 获取最低 ID 的第一个值

SQL get first value of lowest Id

如何获取按x分组的最低id的价格?

Id    Price    Group
1            A
2            A
3            A
4            B
5            B
6            B

A组最低ID的价格是$2
B组最低Id价格为$5

想要的结果:

Group FirstPrice
A     2
B     5

我想我必须使用 CASE WHEN X,但我是新手,找不到解决这个问题的方法。

有什么想法吗?

使用相关子查询的简单方法:

select t.*
from t
where t.id = (select min(t2.id) from t t2 where t2.group = t.group);
WITH cte AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY Group ORDER BY Id ASC) rn
    FROM yourTable
)

SELECT Group, Price
FROM cte
WHERE rn <= 1;

如果你实现了,你会发现这是最合适的代码。如果你想得到最高id的价格,只需要'Id desc'.

我可以为您提供这样的解决方案

SELECT price AS Price, MIN(id), `group` FROM `your_table` GROUP BY `group`