66 lines
3.0 KiB
SQL
66 lines
3.0 KiB
SQL
--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 */ |