практика Агрегации и группировки
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
-- Задание 1
|
||||
SELECT
|
||||
id,
|
||||
name,
|
||||
country,
|
||||
created_at,
|
||||
email
|
||||
FROM mnoskov.users
|
||||
ORDER BY created_at DESC, name;
|
||||
-- выбрал эти столбцы потому что так сказано в задании, я бы добавил ещё is_active
|
||||
-- такая сортировка для того, чтобы даты шли от новых к старым и имена людей за одну дату шли по алфавиту
|
||||
|
||||
|
||||
-- Задание 2
|
||||
SELECT
|
||||
id,
|
||||
name,
|
||||
country
|
||||
FROM mnoskov.users
|
||||
WHERE country = 'US'
|
||||
ORDER BY name;
|
||||
|
||||
SELECT
|
||||
id,
|
||||
name,
|
||||
country
|
||||
FROM mnoskov.users
|
||||
WHERE country = 'UK'
|
||||
ORDER BY name;
|
||||
-- для маркетолого полезнее первый запрос т.к. там больше данных
|
||||
|
||||
|
||||
-- Задание 3
|
||||
SELECT
|
||||
id,
|
||||
name,
|
||||
email
|
||||
FROM mnoskov.users
|
||||
WHERE email IS NOT NULL
|
||||
ORDER BY name;
|
||||
|
||||
SELECT DISTINCT
|
||||
lower(email) AS email_lower
|
||||
FROM mnoskov.users
|
||||
WHERE email IS NOT NULL;
|
||||
-- приводить email к одному регистру мб для красоты, вроде везде email принимается и в нижем и в верхнем регистре
|
||||
-- дубликаты убираем чтобы вытрина занимала меньше места, и чтобы не было повторных рассылок
|
||||
|
||||
|
||||
-- Задание 4
|
||||
SELECT
|
||||
id,
|
||||
name,
|
||||
created_at
|
||||
FROM mnoskov.users
|
||||
WHERE created_at > '2024-02-20 23:59'
|
||||
ORDER BY created_at DESC
|
||||
LIMIT 2 OFFSET 1;
|
||||
-- OFFSET может пригодиться, чтобы взять интервал данных
|
||||
Reference in New Issue
Block a user