SQL: Как выбрать строки, в которых значение столбца встречается хотя бы 1 раз? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть такая база данных.

Database Example Я хочу получить номер счета и деньги тех счетов, на которых есть хотя бы один держатель (ID Card) обоих полов, то есть хотя бы один держатель мужского пола и по крайней мере, один женский держатель.

Результат должен быть:

Result

Это тот запрос, который я использую, но он возвращает 0 ряды. В чем может быть проблема?

select accountNumber, money
from mytable
group by accountNumber, money
having min(sex) <> max(sex)

Спасибо за помощь

Ответы [ 3 ]

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

Вы можете использовать агрегирование и фильтр с предложением having:

select accountNumber, money
from mytable
group by accountNumber, money
having min(sex) <> max(sex)

Condition min(sex) <> max(sex) - это простой и эффективный способ гарантировать, что оба возможных значения доступны для данного (accountNumber, money) кортеж.

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

Можно использовать count.

select
    accountNumber,
    Money
from yourTable
group by
    accountNumber,
    Money
having count(distinct sex) > 1
0 голосов
/ 06 мая 2020

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

select accountNumber, sum(money)
from t
group by accountNumber
having sum(sex = 'M') >= 1 and sum(sex = 'F') >= 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...