SQL查询不同行+最小值
很抱歉成为noob,但在创建此查询时需要一些帮助: 桌子 需要为每个具有最小id的唯一C显示第一行 所以最终结果看起来像C1和C2是唯一的,C1只显示第一行,ID为1:SQL查询不同行+最小值,sql,distinct,Sql,Distinct,很抱歉成为noob,但在创建此查询时需要一些帮助: 桌子 需要为每个具有最小id的唯一C显示第一行 所以最终结果看起来像C1和C2是唯一的,C1只显示第一行,ID为1: id | C | S | T --- |--- |--- |--- 1 |C1 |S1 |DA 4 |C2 |S3 |DA 你能帮忙吗? 我尝试过使用distinct和INTERNAL join,但没有得到任何好的结果。我建议使用row\U编号: se
id | C | S | T
--- |--- |--- |---
1 |C1 |S1 |DA
4 |C2 |S3 |DA
你能帮忙吗?
我尝试过使用distinct和INTERNAL join,但没有得到任何好的结果。我建议使用row\U编号:
select id, c, s, t
from (select t.*, row_number() over (partition by c order by id) as seqnum
from t
) t
where seqnum = 1
使用带有分区的函数,您将能够创建组,这些组将根据C列中从1到n开始的值为每个组提供行号。要选择第一行,可以使用RowNum=1
您可以使用C和所有其他列的最小值对它们进行分组
SELECT MIN(id),
C,
MIN(S),
MIN(T)
FROM table
GROUP BY C
结果
id C S T
1 C1 S1 DA
4 C2 S3 DA
s的最小值和t的最小值将导致每列的最小值,而不一定是与最低ID相关联的值。在处理了我头脑中的查询后,是的,您是正确的。
SELECT MIN(id),
C,
MIN(S),
MIN(T)
FROM table
GROUP BY C
id C S T
1 C1 S1 DA
4 C2 S3 DA