Как сравнить две строки с одним столбцом - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть данные, как показано ниже.Мне нужно сравнить ATTRIBUTE1_TXT на основе PART_KEY_ID.Если обе даты совпадают, мне нужен этот PART_KEY_ID.

PART_KEY_ID ATTRIBUTE1_TXT
504277          JUL 2019 (201)
504277          JUL 2019 (201)
5493605         JUL 2019 (201)
5493605         JUN 2018 (191)
4585233         JUL 2019 (201)
4585233         JUL 2019 (201)
6192893         JUL 2019 (201)
6192893         JUN 2018 (191)

, поэтому вывод должен быть.

PART_KEY_ID
504277
4585233

Ответы [ 5 ]

3 голосов
/ 20 сентября 2019
select PART_KEY_ID 
from your_table
group by PART_KEY_ID 
having count(distinct ATTRIBUTE1_TXT) = 1
2 голосов
/ 20 сентября 2019

Это должно делать то, что вы хотите:

select part_key_id
from t
group by part_key_id
having min(ATTRIBUTE1_TXT) = max(ATTRIBUTE1_TXT);
0 голосов
/ 20 сентября 2019
   --this will work 
  --if you got three similar  ATTRIBUTE1_TXT for one PART_KEY_ID you can replace 
  ----having count(*)=2 in cte to having count(*)=3

   ;with cte as (
    select count(*) c,PART_KEY_ID,ATTRIBUTE1_TXT
    from table
    group by PART_KEY_ID,ATTRIBUTE1_TXT
    having count(*)=2
    ) 

    select PART_KEY_ID
    from cte
0 голосов
/ 20 сентября 2019

Попробуйте этот запрос, я думаю, он должен удовлетворить ваши потребности.

SELECT PART_KEY_ID
FROM table_name
GROUP BY PART_KEY_ID, ATTRIBUTE1_TXT
HAVING COUNT(*) > 1
0 голосов
/ 20 сентября 2019

Это должно работать

select PART_KEY_ID from(select ATTRIBUTE1_TXT ,max(PART_KEY_ID),count(*) from table  group by ATTRIBUTE1_TXT having count(*) >1)t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...