ORDER BY
ORDER BY сортирует результат по одному или нескольким столбцам. Без него порядок строк не гарантирован.
В этом уроке работаем с таблицей tutorial.billboard_top_100_year_end.
Сортировка по одному столбцу
Заголовок раздела «Сортировка по одному столбцу»SELECT *FROM tutorial.billboard_top_100_year_endORDER BY artist;Строки идут по алфавиту, от A до Z. Это порядок по возрастанию. Он работает по умолчанию. Для чисел это от меньшего к большему.
Чтобы отсортировать в обратном порядке, добавьте DESC:
SELECT *FROM tutorial.billboard_top_100_year_endWHERE year = 2013ORDER BY year_rank DESC;ORDER BY пишут после WHERE. Если есть LIMIT, то ORDER BY идёт перед ним.
Сортировка по нескольким столбцам
Заголовок раздела «Сортировка по нескольким столбцам»Столбцы перечисляют через запятую. Сначала сортировка по первому. Если значения равны, то по второму:
SELECT *FROM tutorial.billboard_top_100_year_endWHERE year = 2013ORDER BY year_rank, artist;DESC действует только на тот столбец, после которого стоит:
SELECT *FROM tutorial.billboard_top_100_year_endORDER BY year DESC, year_rank;Здесь год идёт от нового к старому, а место внутри года — от 1 к 100.
Комментарии
Заголовок раздела «Комментарии»Комментарий — это текст, который база игнорирует. Он нужен людям.
Однострочный комментарий начинается с --:
SELECT *FROM tutorial.billboard_top_100_year_endWHERE year = 2013 -- нужный год AND year_rank <= 10; -- только топ-10Многострочный комментарий — между /* и */:
/* Топ-10 за 2013 год. Запрос нужен для проверки. */SELECT *FROM tutorial.billboard_top_100_year_endWHERE year = 2013 AND year_rank <= 10;Хороший комментарий объясняет, зачем это сделано, а не пересказывает код.
Практика
Заголовок раздела «Практика»Решайте сами, без AI. Сначала напишите запрос, потом сверьтесь с проверкой, и только потом открывайте решение.
Задание 1
Заголовок раздела «Задание 1»Напишите запрос, который вернёт все строки за 2012 год. Отсортируйте их по названию песни от Z до A.
Проверка: 131 строка. Первая строка — песня «Young, Wild & Free».
Решение
SELECT *FROM tutorial.billboard_top_100_year_endWHERE year = 2012ORDER BY song_name DESC;Задание 2
Заголовок раздела «Задание 2»Напишите запрос, который вернёт все строки за 2010 год. Отсортируйте их по месту в чарте. Внутри каждой песни отсортируйте исполнителей по алфавиту.
Проверка: 147 строк. Первая строка — Tik Tok, Kesha.
Решение
SELECT *FROM tutorial.billboard_top_100_year_endWHERE year = 2010ORDER BY year_rank, artist;Задание 3
Заголовок раздела «Задание 3»Напишите запрос, который покажет все строки, где T-Pain входит в состав исполнителей. Отсортируйте их по месту в чарте от худшего к лучшему (от 100 к 1).
Проверка: 54 строки. Первая строка: 2008 год, место 100, «She Got It».
Решение
SELECT *FROM tutorial.billboard_top_100_year_endWHERE group_name ILIKE '%t-pain%'ORDER BY year_rank DESC;Задание 4
Заголовок раздела «Задание 4»Напишите запрос, который вернёт песни на местах с 10 по 20 включительно в 1993, 2003 или 2013 году. Отсортируйте результат по году и месту. Оставьте комментарий на каждой строке WHERE, который объясняет, что эта строка делает.
Проверка: 48 строк. Первая строка: 1993 год, место 10, «Informer».
Решение
SELECT *FROM tutorial.billboard_top_100_year_endWHERE year IN (1993, 2003, 2013) -- нужные годы AND year_rank BETWEEN 10 AND 20 -- места с 10 по 20ORDER BY year, year_rank;