【问题标题】:SELECT DISTINCT on one column in SQL Server 2014在 SQL Server 2014 中的一列上选择 DISTINCT
【发布时间】:2020-03-16 23:44:29
【问题描述】:

SQL Sever 2014,我有一张这样的表:

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

我使用了DistinctTopOrder by,但它不起作用。我怎样才能得到这个结果?

【问题讨论】:

    标签: sql sql-server tsql sql-server-2014


    【解决方案1】:

    您需要 max() 聚合函数,但您必须执行 group by 以按其他列对结果集进行分组:

    SELECT max(tag_id) AS tag_id, prd_id, prod_nm 
    FROM table 
    GROUP BY prd_id, prod_nm
    

    【讨论】:

      【解决方案2】:

      您可以将maxgroup by 一起使用

      select max(tag_id)tag_id,prd_id,prod_nm 
      from mytable 
      group by prd_id,prod_nm
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-19
        • 1970-01-01
        • 2016-12-23
        • 1970-01-01
        • 2010-11-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多