Как вывести строки из разных таблиц, у которых одно и то же значение в полях "название" и "признак", но разные значения в поле "номер"?

Допустим, есть 2 таблицы (см. ниже). Как вывести строки, у которых одно и то же значение в полях "название" и "признак", но разные значения в поле "номер"? таблицы связать через "from Цветономера join Названия on Цветономера.id = Названия.цветономер" То есть нужно вывести строки, у которых совпадают "название" и "признак", при этом если номера у них одинаковые, то выводить их не нужно. Но если есть строки с неуникальными номерами и получается одинаковыми полями "название" и "признак" , то вывести эту уникальную строку с отличным номером и сгруппированную строку, где все поля одинаковые: |122|black|1| |123|black|5| |128|red|4| |129|red|7|

таблица "Цветономера"

id признак номер
121 black 1
122 black 1
123 black 5
124 black 1
125 blue 8
126 blue 8
127 red 4
128 red 4
129 red 7

таблица "Названия"

название цветономер
name 121
name 122
name 123
name 124
name 125
name 126
name4 127
name4 128
name4 129

Запрос ниже, который был ранее в комментариях к вопросу со значениями из одной таблицы , возможно, корректный. Только как быть со значениями из разных таблиц?

select distinct c."название", c."признак", c."номер" from (
  select 
    "название", 
    "признак", 
    "номер",
    count(*) over (partition by "название", "признак") cnt
  from test
) c
where c.cnt > 1
order by "название", "признак"

Ответы (1 шт):

Автор решения: Екатерина

В общем ответ такой:

select distinct c.название , c.признак, c.номер from (
  select НЗ.название , ЦН.признак, ЦН.номер,
  count(*) over (partition by НЗ.название , ЦН.признак, ЦН.номер) cnt
  from  Цветономера as ЦН
  join Названия as НЗ on ЦН.ID = НЗ.цветономера ) c
where c.cnt > 1
order by c.название , c.признак
→ Ссылка