completed my homework - sql base
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
-- Задание 1
|
||||
SELECT id, name, country, created_at, email
|
||||
FROM users
|
||||
ORDER BY created_at DESC, name;
|
||||
|
||||
-- Почему выбрал именно эти столбцы и зачем такая сортировка?
|
||||
-- Ответ на вопрос:
|
||||
-- Эти столбцы нужны для анализа пользователей, для тех же аналитиков.
|
||||
-- Сортировка по дате и имени, я так предпологаю, нужня для удобства.
|
||||
|
||||
|
||||
-- Задание 2
|
||||
-- Запрос 1
|
||||
SELECT id, name, country
|
||||
FROM users
|
||||
WHERE country = 'US'
|
||||
ORDER BY name;
|
||||
|
||||
-- Запрос 2
|
||||
SELECT id, name, country
|
||||
FROM users
|
||||
WHERE country = 'UK'
|
||||
ORDER BY name;
|
||||
|
||||
-- Какой из двух запросов маркетологу полезнее и почему?
|
||||
-- Ответ на вопрос:
|
||||
-- Я так понимаю маркетологу нужно понять какое кол-во пользователей в каждой из стран зарегестрировалось в приложении.
|
||||
-- Возможно для понимания продвижения продукта и насколько успешна маркетинговая стратегия. И в дальнейшем её корректировка.
|
||||
|
||||
|
||||
-- Задание 3
|
||||
-- Запрос 1
|
||||
SELECT id, name, email
|
||||
FROM users
|
||||
WHERE email IS NOT NULL -- я знаю что email и так должен быть NOT NULL по DDL, но на всякий прописал
|
||||
ORDER BY name;
|
||||
|
||||
-- Запрос 2
|
||||
SELECT DISTINCT LOWER(email) as email_lower
|
||||
FROM users
|
||||
WHERE email IS NOT NULL;
|
||||
|
||||
-- Зачем вообще приводить email к одному регистру и убирать дубликаты на стороне базы?
|
||||
-- Ответ на вопрос:
|
||||
-- Приводить email к нижнему регистру необходимо для того чтобы небыло дубликатов почты.
|
||||
-- После гугления я узнал что в почтовых адресах могут допускаться верхние регистры букв, только потом создать email с теми же буквами но в нижнем регистре нельзя будет, они будут считаться индентичными.
|
||||
-- Получается несколько пользователей могут залогинится под одним и тем же email адресом но с разными регистрами. А такое нельзя допускать.
|
||||
-- Для рассылки дубликаты нужно убирать что-бы не приходила рассылка дважды в один и тот же email.
|
||||
|
||||
-- Задание 4
|
||||
-- Запрос 1
|
||||
SELECT id, name, created_at
|
||||
FROM users
|
||||
WHERE created_at > '2024-01-14'
|
||||
ORDER BY created_at DESC;
|
||||
|
||||
-- Запрос 2
|
||||
SELECT id, name, created_at
|
||||
FROM users
|
||||
WHERE created_at > '2024-01-14'
|
||||
ORDER BY created_at DESC
|
||||
LIMIT 3;
|
||||
|
||||
-- Запрос 3
|
||||
SELECT id, name, created_at
|
||||
FROM users
|
||||
WHERE created_at > '2024-01-14'
|
||||
ORDER BY created_at DESC
|
||||
OFFSET 1 LIMIT 2;
|
||||
|
||||
-- В каком реальном сценарии тебе пригодится OFFSET?
|
||||
-- Ответ на вопрос:
|
||||
-- Не знаю, возможно понадобится посмотреть несколько записей из середины списка.
|
||||
Reference in New Issue
Block a user