Выбор, если счетчик для другого значения равен 1 или более - PullRequest
0 голосов
/ 29 мая 2020

У меня есть следующие данные таблицы:

Number              Code
   1                 430
   1                 430
   2                 430
   2                 430
   3                 420
   3                 340
   3                 430
   1                 420

Учитывая приведенные выше данные, я пытаюсь получить записи с другим кодом, чтобы было понятно, что я ожидаю получить следующие результаты.

Number              Code
  1                 430
  1                 420
  3                 420
  3                 340
  3                 430 

Если вы видите, что я выбираю только номер с другим кодом, если номер не имеет другого кода, я не хочу выбирать этот номер.

У меня есть попробовал с group by с having, а затем отфильтровал совпадающие коды, но я все еще не могу понять это и возиться с моим выводом. Я не могу добавить having count(*) > 1, потому что один и тот же номер может иметь несколько строк с одним и тем же кодом.

Любая помощь или указатели были бы замечательными.

Ответы [ 2 ]

1 голос
/ 29 мая 2020

Вам необходимо четко подсчитать код, сгруппированный по Number, и отчетливо показать в основном запросе:

WITH t AS
(
SELECT Number
  FROM tab
 GROUP BY Number 
 HAVING COUNT(DISTINCT Code) > 1 )
SELECT DISTINCT t2.*
  FROM tab t2
  JOIN t
    ON t2.Number = t.Number
 ORDER BY t2.Number

Demo

0 голосов
/ 29 мая 2020

Вы можете попробовать это ниже logi c с подзапросом -

SELECT DISTINCT * FROM your_table
WHERE num IN
(
    SELECT num
    FROM your_table
    group by Num
    HAVING COUNT(DISTINCT Code) > 1
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...