SQL - пытается сопоставить данные

0

Я просто изучаю SQL. Набор данных, который у меня есть, выглядит следующим образом:

city_name |  work_place_name | min_commute_time | max_commute_time
-------------------------------------------------------------------
Austin        CONGRESS           25                 45
Austin        NASA               10                 12
Austin        CIRCUS             16                 35
CEDAR PARK    CONGRESS           35                 65
CEDAR PARK    NASA               28                 60
CEDAR PARK    CIRCUS             26                 55
KYLE          CONGRESS           50                 85
KYLE          NASA               60                 100
KYLE          CIRCUS             60                 100

Я пытаюсь выяснить, в каком городе будет минимальное время коммутации меньше или равно 30 для КОНГРЕССА и НАСА. Я придумал следующий запрос, но я не получаю результаты, которые я ищу.

SELECT city_name
FROM commute_times
WHERE min_commute_time<=30 AND (work_place_name='NASA' OR work_place_name='CONGRESS')

Результаты, которые я получаю:

city_name 
-----------
Austin
Austin
Cedar Park

Результаты, на которые я надеюсь, следующие:

City_name
-----------
Austin
Теги:

1 ответ

0
Лучший ответ

Вы близки. Агрегация заполнит недостающую часть:

SELECT city_name
FROM commute_times
WHERE min_commute_time <= 30 AND 
      work_place_name IN ('NASA', 'CONGRESS')
GROUP BY city_name
HAVING COUNT(*) = 2;
  • 0
    Спасибо, Гордон!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню