Перейти к содержимому
TelegramGitHub

WHERE

WHERE оставляет в результате только те строки, которые подходят под условие. Это фильтр, как в Excel. Без него запрос возвращает всю таблицу.

В этом уроке работаем с таблицей tutorial.us_housing_units.

Сначала посмотрим на таблицу целиком:

SELECT *
FROM tutorial.us_housing_units;

Теперь оставим только январь:

SELECT *
FROM tutorial.us_housing_units
WHERE month = 1;

Запрос вернёт 47 строк — по одной на каждый год с 1968 по 2014.

Части запроса всегда идут в таком порядке: SELECT, FROM, WHERE.

База проверяет условие для каждой строки:

  • условие верно — строка попадает в результат;
  • условие неверно — строка отбрасывается.

Строка всегда остаётся целой. Фильтр по одному столбцу убирает строку целиком, со всеми её столбцами. Каждая строка — это одно наблюдение, и её данные не перемешиваются с другими строками.

Условие может использовать столбец, которого нет в SELECT:

SELECT year,
west
FROM tutorial.us_housing_units
WHERE month = 1;

В условиях можно использовать не только =. Другие операторы сравнения — в следующем уроке, Операторы сравнения.

Решайте сами, без AI. Сначала напишите запрос, потом сверьтесь с проверкой, и только потом открывайте решение.

Напишите запрос, который вернёт все строки за 1990 год.

Проверка: 12 строк. В январе 1990 года west = 34.2.

Решение
SELECT *
FROM tutorial.us_housing_units
WHERE year = 1990;

Напишите запрос, который вернёт только столбцы year и west для всех строк за июнь (month = 6).

Проверка: 47 строк, 2 столбца. Для 1968 года west = 26.0.

Решение
SELECT year,
west
FROM tutorial.us_housing_units
WHERE month = 6;

Напишите запрос, который вернёт все строки за 2014 год — последний год в таблице.

Проверка: 12 строк. В строке за декабрь south = 35.3.

Решение
SELECT *
FROM tutorial.us_housing_units
WHERE year = 2014;