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