2016-11-29 101 views
0

我正在使用ROW_NUMBER按銷售額去排名。查詢看起來像下面row_number分區結果錯誤

SELECT country, SUM(sales) AS sales, 
     ROW_NUMBER() OVER (PARTITION BY country ORDER BY SUM(sales) DESC) AS 'rank' 
FROM table 
GROUP BY country 
ORDER BY sales DESC 

由於某種原因,排名是所有國家之一。

+2

,因爲你是國家分組,也按國家劃分,你總是會得到每個國家的1排由1.刪除'分區的排名來自'row_number'的國家。 –

+1

'AS'rank''是無效的標準SQL。你正在使用哪個DBMS? –

回答

3

如果通過COUNTRY,在ROW_NUMBER復位劃分爲1

SELECT country, 
     SUM(sales) AS sales, 
     ROW_NUMBER() OVER (ORDER BY SUM(sales) DESC) AS 'rank' 
FROM table 
GROUP BY country 
ORDER BY sales DESC 
+0

啊,是的,沒有想到這一點。 – Faiz

+0

您也可以使用SUM窗口功能並通過刪除組。 –

+0

@JoeC我想了解它,但是你可以添加'row_number'嗎? –