--TASK 1 SELECT id, name, country, created_at, email FROM users; SELECT id, name, country, created_at, email FROM users ORDER BY created_at DESC, name ASC; /* Почему выбрал именно эти столбцы и зачем такая сортировка? эти столбцы содержать основную информацию о пользователях, а сортировка поможет выявить сначала новых пользователей, а потом сортировку по алфавиту внутри одной даты */ --TASK 2 --пользователи из страны US (id,name,country) с сортировкой по имени SELECT id, name, country FROM users WHERE country = 'US' ORDER BY name ASC; --пользователи из страны UK SELECT * FROM users WHERE country = 'UK'; /* Какой из двух запросов маркетологу полезнее и почему? второй запрос будет более информативным ввиду наличия информации по дате регистрации и активности, даже возможно перегруженным */ --TASK 3 SELECT id, name, email FROM users WHERE email IS NOT NULL ORDER BY name ASC; SELECT DISTINCT LOWER(email) AS email_lower FROM users; /* Зачем вообще приводить email к одному регистру и убирать дубликаты на стороне базы? Это необходимо ввиду того, что многие пользователи при регистрации могут использовать верхний регистр, который в свою очередь никак не влияет на самом деле на сам адрес, но может влиять при обработке данных. А дубликаты убираются ввиду возможной повторной регистрации пользователей, что в свою очередь тоже может повлиять на анализ информации по пользователям. */ -- TASK 4 SELECT id, name, created_at FROM users WHERE created_at > '2024-01-18' ORDER BY created_at DESC LIMIT 3; SELECT id, name, created_at FROM users WHERE created_at > '2024-01-18' ORDER BY created_at DESC LIMIT 2 OFFSET 1; /* В каком реальном сценарии тебе пригодится OFFSET? OFFSET может пригодиться когда например нужно убрать пользователей, которые зарегистрировались сегодня, а сама подписка, например, с завтрашнего дня считается. Или когда данные нужно смотреть партиями или же когда необходимо подгрузить данные по-странично, то есть на первой странице может быть 10 человек, на второй еще 10 */