У меня есть следующий SQL, который работает и возвращает продукты с повторяющимися именами, а столбец rownum - количество раз, сколько раз это имя появляется.SQL Server 2008 - ROWNUMBER OVER - фильтрация результата
Добавление where rownum > 1
в конце дает мне только дубликаты.
SELECT *
FROM
(SELECT
id, productname,
ROW_NUMBER() OVER (PARTITION BY productname
ORDER BY productname) Rownum
FROM products
GROUP BY id, productname) result
ТРЕБОВАНИЕ
Мне нужно составить список продуктов, в которых, если столбец ROWNUM имеет значение больше, чем один, я хочу, чтобы увидеть все строки, относящиеся к этому продукту, сгруппированных по столбцу имя ,
Если значение rownum для продукта равно 1, и не имеет значения больше одного (так что не дублируется), я не хочу видеть эту строку.
Так, например, если «Голубой зонт» появляется три раза, я хочу, чтобы увидеть результат этого продукта, как:
ID Name Rownum
35 Blue umbrella 1
41 Blue umbrella 2
90 Blue umbrella 3
Как бы я идти о достижении этой цели, пожалуйста?
На самом деле то, что ваш ожидаемый результат? Нужно только показывать строку с 'rownum = 1'? – Wanderer
привет, нет, если какая-либо строка имеет число больше 1 в столбце rownum, например 3, я хочу видеть и другие две связанные строки. поэтому в основном я хочу видеть все дубликаты рядом друг с другом. я надеюсь, что это разъяснит его. – Nick