SQL найдите автосалоны, продающие только один тип автомобилей

#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)