← Аналитика данных с нуля: SQL, таблицы и метрики
Lesson
Урок 2. Фильтр, сортировка, уникальные, лимит
Писать запросы с WHERE, ORDER BY, DISTINCT и LIMIT и предсказывать их результат на маленькой таблице.
WHERE, ORDER BY, DISTINCT и LIMIT
WHERE, ORDER BY, DISTINCT и LIMIT
Рассмотрим таблицу orders с такими данными: (1, Москва, 200), (2, Казань, 50), (3, Москва, 150), (4, Сочи, 300), (5, Казань, 80), (6, Москва, 100).
WHERE фильтрует строки по условию — SQL проверяет каждую строку и оставляет только те, где условие истинно. Пример: SELECT * FROM orders WHERE amount > 100 вернёт строки 1, 3, 4 (суммы 200, 150, 300). Можно комбинировать: WHERE city = 'Москва' AND amount > 100 вернёт строки 1 и 3. Операторы: =, >, <, >=, <=, <> (не равно), AND, OR.
ORDER BY сортирует результат. По умолчанию — по возрастанию (ASC). Для убывания добавляют DESC. Пример: SELECT * FROM orders ORDER BY amount DESC вернёт строки в порядке 300, 200, 150, 100, 80, 50.
DISTINCT убирает одинаковые строки из результата. Пример: SELECT DISTINCT city FROM orders вернёт три строки: Москва, Казань, Сочи — без повторов.
LIMIT ограничивает число строк в результате. Чаще всего его используют вместе с ORDER BY, чтобы получить «топ-N». Пример: SELECT city, amount FROM orders ORDER BY amount DESC LIMIT 3 вернёт три самых дорогих заказа: Сочи 300, Москва 200, Москва 150.
Lesson notes
WHERE, ORDER BY, DISTINCT и LIMIT
Рассмотрим таблицу orders с такими данными: (1, Москва, 200), (2, Казань, 50), (3, Москва, 150), (4, Сочи, 300), (5, Казань, 80), (6, Москва, 100).
WHERE фильтрует строки по условию — SQL проверяет каждую строку и оставляет только те, где условие истинно. Пример: SELECT * FROM orders WHERE amount > 100 вернёт строки 1, 3, 4 (суммы 200, 150, 300). Можно комбинировать: WHERE city = 'Москва' AND amount > 100 вернёт строки 1 и 3. Операторы: =, >, <, >=, <=, <> (не равно), AND, OR.
ORDER BY сортирует результат. По умолчанию — по возрастанию (ASC). Для убывания добавляют DESC. Пример: SELECT * FROM orders ORDER BY amount DESC вернёт строки в порядке 300, 200, 150, 100, 80, 50.
DISTINCT убирает одинаковые строки из результата. Пример: SELECT DISTINCT city FROM orders вернёт три строки: Москва, Казань, Сочи — без повторов.
LIMIT ограничивает число строк в результате. Чаще всего его используют вместе с ORDER BY, чтобы получить «топ-N». Пример: SELECT city, amount FROM orders ORDER BY amount DESC LIMIT 3 вернёт три самых дорогих заказа: Сочи 300, Москва 200, Москва 150.