90 lines
3.9 KiB
SQL
90 lines
3.9 KiB
SQL
/*
|
||
- Задание 1 — Спроектируй «карточку пользователя»
|
||
|
||
Ты делаешь экран “Пользователи” в админке и решаешь, какие поля там важны.
|
||
|
||
Работаем с таблицей **`users`**
|
||
|
||
**✅ Требования:**
|
||
|
||
1. Напиши запрос, который вернёт в результате только столбцы: **`id`**, **`name`**, **`country`**, **`created_at`**, **`email`**
|
||
2. Потом измени запрос так, чтобы:
|
||
- сначала отсортировать по **`created_at`** (новые сверху)
|
||
- потом по **`name`** по алфавиту внутри одной даты
|
||
|
||
- Задание 2 — Сегментация по странам (с выбором)
|
||
|
||
Маркетолог хочет понять, какая страна сейчас интереснее.
|
||
|
||
Работаем с таблицей **`users`**
|
||
|
||
**✅ Требования:**
|
||
|
||
1. Выбери страну **`US`**и напиши запрос, который:
|
||
- вернёт **`id`**, **`name`**, **`country`**;
|
||
- покажет только пользователей из выбранной страны;
|
||
- отсортирует их по имени.
|
||
2. Напиши второй запрос, который вернёт пользователей из страны **`UK`**.
|
||
|
||
- Задание 3 — Контакты для рассылки (думать про качество)
|
||
|
||
Нужно сделать список e‑mail для рассылки так, чтобы его не стыдно было отдавать маркетологу.
|
||
|
||
**✅ Требования:**
|
||
|
||
1. Напиши один запрос, который:
|
||
- вернёт только пользователей, у которых email **есть**;
|
||
- вернёт столбцы **`id`**, **`name`**, **`email`**;
|
||
- отсортирует их по имени.
|
||
2. Напиши второй запрос, который подготовит «чистый» вид email:
|
||
- вернёт только **`email`** в нижнем регистре (как **`email_lower`**);
|
||
- уберёт дубликаты email (нужно использовать **`DISTINCT`**).
|
||
- Задание 4 — Новички и активность
|
||
|
||
«Тебе нужно посмотреть, кто пришёл недавно и кого стоит “подогреть”.»
|
||
|
||
**✅ Требования:**
|
||
|
||
1. Напиши запрос, который:
|
||
- выберет пользователей, зарегистрированных **после** даты, которую ты сам выберешь (например, **`2024‑01‑11`**);
|
||
- вернёт **`id`**, **`name`**, **`created_at`**;
|
||
- отсортирует по **`created_at`** от новых к старым.
|
||
2. Ограничь результат так, чтобы увидеть только 3 самых новых пользователя.
|
||
3. Измени запрос так, чтобы пропустить самого нового и показать следующих двух (используй **`LIMIT`** и **`OFFSET`**).
|
||
*/
|
||
SELECT id,
|
||
name,
|
||
country,
|
||
created_at,
|
||
email
|
||
FROM dsolovianov.users
|
||
ORDER BY created_at DESC, name ASC;
|
||
|
||
SELECT id,
|
||
name,
|
||
country
|
||
FROM dsolovianov.users
|
||
WHERE country LIKE 'US';
|
||
|
||
SELECT id,
|
||
name,
|
||
country
|
||
FROM dsolovianov.users
|
||
WHERE country LIKE 'UK';
|
||
|
||
SELECT id,
|
||
name,
|
||
email,
|
||
LOWER(email) AS email_lower
|
||
FROM dsolovianov.users
|
||
WHERE email IS NOT NULL
|
||
ORDER BY name;
|
||
|
||
SELECT id,
|
||
name,
|
||
created_at
|
||
FROM dsolovianov.users
|
||
WHERE created_at > '2024-01-11'
|
||
ORDER BY created_at DESC
|
||
LIMIT 3 OFFSET 1;
|