Как получить те строки, где все значения совпадают с уникальным идентификатором - PullRequest
0 голосов
/ 24 июня 2018

У меня есть таблица ниже:

ID       State      City       Pincode      Code      Date
U-1      AAB        CCV        141414       121       2018-04-04 18:08:17
U-1      AAB        CCV        141414       121       2018-04-04 18:08:17
U-2      BTB        ERV        150454       145       2018-05-05 19:11:25
U-2      BTB        ERV        150454       145       2018-05-05 19:11:25
U-3      FFT        ERT        160707       150       2018-05-22 21:37:45
U-4      FFT        RTT        160707       150       2018-05-28 14:23:48

Я хочу получить только те строки, в которых все значения одинаковы в конкретном уникальном идентификаторе.

Вывод:

ID       State      City       Pincode      Code      Date
U-1      AAB        CCV        141414       121       2018-04-04 18:08:17
U-1      AAB        CCV        141414       121       2018-04-04 18:08:17
U-2      BTB        ERV        150454       145       2018-05-05 19:11:25
U-2      BTB        ERV        150454       145       2018-05-05 19:11:25

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Получить повторяющиеся строки и объединить результат с исходной таблицей.

select * from table a
join ( select id,state,city,pincode,code,date
       from table 
       group by id,state,city,pincode,code,date 
       having count(*) > 1 ) b
on a.id = b.id
and a.state = b.state
and a.city = b.city
and a.pincode = b.pincode
and a.code = b.code
and a.date=b.date
0 голосов
/ 24 июня 2018

Вы можете попробовать это:

SELECT * FROM table WHERE ID IN (
    SELECT count(*) AS c FROM table 
    WHERE c > 1 
    GROUP BY ID
)

Получить все строки, где количество записей с этим идентификатором больше 2 (как минимум, две строки с этим идентификатором)

...