#sql #database #select #nested-queries
#sql #База данных #выберите #вложенные запросы
Вопрос:
Я запрашиваю таблицу, просматривающую три поля; unit_id, group_id и service.
Каждый unit_id уникален и имеет один group_id и связанный с ним сервис.
Я хочу вернуть group_id и service, где все устройства с этим group_id имеют одинаковую службу. Например, если у меня есть:
unit_id group_id service
1 group_A apple
2 group_B orange
3 group_B apple
4 group_A apple
5 group_C banana
Я хочу, чтобы он возвращал group_A и group_C, потому что все службы в этих group_id одинаковы, тогда как group_B имеет как orange, так и apple.
Как мне написать SQL-запрос, который выполняет это?
Большое спасибо.
Ответ №1:
select * from your_table
where group_id in
(
select group_id
from your_table
group by group_id
having count(distinct service) = 1
)
Комментарии:
1. @juergen_d Понял, это имеет большой смысл, спасибо!