#sql #postgresql
Вопрос:
Я пытаюсь найти автосалоны, которые продают автомобили только одного типа. У меня есть таблица car
, содержащая carid
, dealership
где находится автомобиль, engine
что у него есть и что type
это за автомобиль (который может быть только одного из 4 типов: седан,купе,хэтчбек, спорт).
Я знаю, как группироваться по дилерским центрам, но я не понимаю, как найти дилерские центры, в которых есть автомобили только одного типа. Вот что у меня есть до сих пор:
select carid,dealership,type from car group by dealership
Теперь моя первоначальная идея состояла в том, чтобы сгруппироваться по обоим dealership
и type
, но это не помогло найти дилерские центры с автомобилями только одного типа, так как это дало мне несколько результатов для некоторых дилерских центров.
Затем я попытался добавить отдельное предложение having, например having type='sedan'
, для каждого типа, а затем объединить все таблицы, но это дало то же самое, что и идея группироваться по обоим полям.
Комментарии:
1. намек —
count()
иhaving()
2. Спасибо, я вообще не думал об использовании графа. Я думаю, что теперь у меня есть то, что я использовал: количество(отдельный тип) = 1
Ответ №1:
Просто используйте необходимость проверки равенства максимального и минимального значений.
select dealership, Max(type) from car group by dealership Having Max(type)=Min(type)