SQL запрос на выборку одного столбца с несколькими значениями - PullRequest
0 голосов
/ 17 апреля 2020

Рассмотрим приведенную ниже таблицу:

Table1

id | status
------------
1  | A
2  | B
3  | C
1  | B
4  | B
5  | C
4  | A

Желаемый выход - 1 и 4, так как они имеют статус «A» и «B».

Можем ли мы написать запрос для этого? Я пытался запросить его, используя такие условия, как «И», «СОЮЗ» и «ИЛИ», но он не дал мне желаемого результата.

Ответы [ 3 ]

1 голос
/ 17 апреля 2020

Если вы хотите идентификаторы с более чем 1 статусами:

select id
from tablename
group by id
having count(distinct status) > 1
0 голосов
/ 17 апреля 2020

Попробуйте это, вы также можете обойтись без having()

select
    id
from
(
    select
        id,
        count(distinct status) as cnt
    from yourTable
    group by
        id
) val
where cnt > 1 
0 голосов
/ 17 апреля 2020

Вы можете использовать агрегацию:

select id
from t
where status in ('A', 'B')
group by id
having count(*) = 2;

Если в таблице разрешено дублирование, используйте count(distinct status) = 2.

...