2013-12-17 79 views
1

我想唯一的名稱列表,以及一個行數列,以便它看起來像這樣:獨特和ROW_NUMBER不共同努力

1 wilford building 
2 oxford center 
3 williams place 

我需要的不同之處在那裏,讓我只獲得一次建築名稱。

SELECT R.RowNum, 
     R.COLUMN_NAME 
FROM 
(
    SELECT ROW_NUMBER() OVER (PARTITION BY buildingName 
           ORDER BY buildingName) AS RowNum, 
      DISTINCT buildingName AS COLUMN_NAME 
    FROM cityStatus 
) AS R 

但是,事實並非如此。

是否可以使用DISTINCTROW_NUMBER()

+1

描述什麼是 「不工作」 的意思。錯誤?不正確的結果? – JohnFx

+0

可能的重複http://stackoverflow.com/questions/18121130/sql-query-distinct-with-row-number http://stackoverflow.com/questions/2293987/t-sql-select-distinct-row-number-過度訂購問題 –

回答

5
SELECT 
    buildingName, 
    ROW_NUMBER() OVER(ORDER BY buildingName) AS RowNum 
FROM cityStatus 
GROUP BY buildingName 
+0

+1 - 我更喜歡這種方法來回答我的問題。我提供了我的回答關於使用DISTINCT的原始問題,但如果我這樣做,我會使用group。 – liebs19

2

執行不同的第一:

SELECT 
    row_number() over(partition by buildingName ORDER BY buildingName) AS RowNum 
    ,COLUMN_NAME 
from (
    select 
     DISTINCT buildingName AS COLUMN_NAME 
    FROM cityStatus 
) as cityStatus 
+1

爲什麼最外層的查詢?它與從中選擇的結果相同? – Aquillo

+1

不錯,謝謝。我剛抓住他的初始查詢並編輯它。我會刪除它。 – liebs19

相關問題