Files
homework/dmedvedev/base_sql.sql
T
2026-06-04 12:22:58 +05:00

66 lines
3.1 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
--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 id, name, country, email, is_active, created_at
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 */