2013-12-17 48 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

相关问题