DDL, DML, Basic, Filter
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
- Задание 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;
|
||||
Reference in New Issue
Block a user