У меня есть база данных со структурой:

enter image description here

Я изо всех сил пытаюсь написать запрос, чтобы показать мне, чем отличается «Supp». (Supp должно быть одинаковым для всех записей, поэтому мне нужно идентифицировать записи, которые нужно исправить) Таблица содержит более 55000 строк

Достаточно просто списка кодов, в которых Supp не одинаков для каждого местоположения. Выбор отдельного или сгруппированного по, но не уверен, как запросить Supp, если он отличается. Например, с указанными выше данными: 1478 и 5689 будут затронутыми строками.

Любая помощь будет принята с благодарностью.

0
Dave Hamilton 23 Окт 2019 в 16:11

1 ответ

Лучший ответ

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

SELECT Code
  FROM testtable
  GROUP BY Code
  HAVING COUNT(DISTINCT Supp) >= 2

Выход:

1478
5689

Если вы хотите получить полные строки (или частично, изменив SELECT *), попробуйте что-нибудь вроде:

SELECT a.*
  FROM testtable a
    INNER JOIN (
                SELECT Code
                  FROM testtable
                  GROUP BY Code
                  HAVING COUNT(DISTINCT Supp) >= 2
                ) b ON b.Code = a.Code

Выход:

Location    Code    Supp    Ref
1           1478    CAM001  203442
2           1478    CAM001  203442
99          1478    COL001  203442
1           5689    SAM001  65789
2           5689    SUL001  65789
99          5689    SUL001  65789

Посмотрите это в действии на sqlfiddle.

4
Martin 23 Окт 2019 в 13:19