1

次の一意の行のテーブルがあります。

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

重複する名前を除外して、Sonderhald が 1 回だけ発生するように選択しますnamechange最大のゾンダーハルトが欲しいNumber_of_Sales

SQL Server でこれを行うにはどうすればよいですか?

ありがとう

4

2 に答える 2

3
SELECT t.name, t.change, t.number_of_sales
FROM your_table t
INNER JOIN (
        SELECT tt.name, MAX(tt.number_of_sales) AS max_number_of_sales 
        FROM your_table tt 
        GROUP BY tt.name
    ) tm ON t.name = tm.name AND t.number_of_sales = tm.max_number_of_sales
于 2013-11-01T16:04:36.197 に答える
0

これを行うには、共通テーブル式を使用できます。

;
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

http://technet.microsoft.com/en-us/library/ms190766%28v=sql.105%29.aspx

于 2013-11-01T16:21:14.043 に答える