Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL中唯一行的聚合_Sql_Sql Server - Fatal编程技术网

SQL中唯一行的聚合

SQL中唯一行的聚合,sql,sql-server,Sql,Sql Server,我有下表中的唯一行: Name change Number_of_Sales Soby 2.22 8370 Sollerod -1.06 11287 Sonderborg 2.60 6343 Sonderhald 11.43 1623 Sonderhald 10.93 2098 我想选择name和change,排除重复的名称,这样Sonderhald只出现一次。我想要销售数量最大的Sonderhald 如何在SQL Server

我有下表中的唯一行:

Name        change  Number_of_Sales
Soby        2.22    8370
Sollerod    -1.06   11287
Sonderborg  2.60    6343
Sonderhald  11.43   1623
Sonderhald  10.93   2098
我想选择
name
change
,排除重复的名称,这样Sonderhald只出现一次。我想要销售数量最大的Sonderhald

如何在SQL Server中执行此操作


谢谢

您可以使用通用表表达式来执行此操作:

;
WITH    cte
          AS ( SELECT   Name,
                        Change,
                        Number_of_Sales,
                        ROW_NUMBER() OVER ( PARTITION BY name ORDER BY number_of_sales DESC ) AS RowNum
               FROM     your_table
             )
    SELECT  Name,
            Change,
            Number_of_Sales
    FROM    cte
    WHERE   RowNum = 1

;
WITH    cte
          AS ( SELECT   Name,
                        Change,
                        Number_of_Sales,
                        ROW_NUMBER() OVER ( PARTITION BY name ORDER BY number_of_sales DESC ) AS RowNum
               FROM     your_table
             )
    SELECT  Name,
            Change,
            Number_of_Sales
    FROM    cte
    WHERE   RowNum = 1