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`
如何获取按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`