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

Но, так оно и есть, оно не работает.

Можно ли использовать DISTINCT с ROW_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- over-ordering-problem –

ответ

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

+1 - Я предпочитаю этот метод для моего ответа. Я предоставил свой ответ на исходный вопрос об использовании DISTINCT, но я бы использовал группу, если бы я это делал. – 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

Смежные вопросы