SELECT SQL Server 2014 中的一列上的 DISTINCT
SELECT DISTINCT on one column in SQL Server 2014
在SQL Sever 2014
中,我有这样一个table:
tag_id prd_id prod_nm
--------------------------------------
1 1 apple
2 1 apple
3 1 apple
4 2 banana
5 2 banana
6 3 tomato
7 3 tomato
8 4 cabbage
9 5 melon
而且我想获得每个产品的最高 tag_id
。
tag_id prd_id prod_nm
------------------------------
3 1 apple
5 2 banana
7 3 tomato
8 4 cabbage
9 5 melon
我使用了 Distinct
、Top
、Order by
,但它不起作用。我怎样才能得到这个结果?
您可以将 max
与 group by
一起使用
select max(tag_id)tag_id,prd_id,prod_nm
from mytable
group by prd_id,prod_nm
您需要 max()
聚合函数,但您必须执行 group by
以按其他列对结果集进行分组:
SELECT max(tag_id) AS tag_id, prd_id, prod_nm
FROM table
GROUP BY prd_id, prod_nm
在SQL Sever 2014
中,我有这样一个table:
tag_id prd_id prod_nm
--------------------------------------
1 1 apple
2 1 apple
3 1 apple
4 2 banana
5 2 banana
6 3 tomato
7 3 tomato
8 4 cabbage
9 5 melon
而且我想获得每个产品的最高 tag_id
。
tag_id prd_id prod_nm
------------------------------
3 1 apple
5 2 banana
7 3 tomato
8 4 cabbage
9 5 melon
我使用了 Distinct
、Top
、Order by
,但它不起作用。我怎样才能得到这个结果?
您可以将 max
与 group by
select max(tag_id)tag_id,prd_id,prod_nm
from mytable
group by prd_id,prod_nm
您需要 max()
聚合函数,但您必须执行 group by
以按其他列对结果集进行分组:
SELECT max(tag_id) AS tag_id, prd_id, prod_nm
FROM table
GROUP BY prd_id, prod_nm