DDL, DML, Basic, Filter
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
/*INSERT INTO dsolovianov.products (name, category, price, in_stock) VALUES
|
||||
('Mi Band 7', 'smartwatch', 49.00, true),
|
||||
('Surface Pro', 'tablet', 1299.00, true),
|
||||
('iPhone 15', 'smartphone', 999.00, true),
|
||||
('Logitech MX Master', 'mouse', 120.00, true);*/
|
||||
|
||||
/*
|
||||
- Задача 1 — Товары для продажи
|
||||
|
||||
Ты настраиваешь главную витрину магазина. Нужно показывать только товары, которые сейчас реально готовы продавать.
|
||||
|
||||
**✅ Условия:**
|
||||
|
||||
- товар **в наличии**
|
||||
- категория **НЕ smartwatch**
|
||||
- цена **от 100 до 1300**
|
||||
- отдельно хотим видеть цену:
|
||||
- с наценкой 30% ( price + 30%)
|
||||
- с «виртуальным НДС» 50% (price + 50%)
|
||||
|
||||
**✅ Вывести:**
|
||||
|
||||
- `name`, `category`, `price`
|
||||
- `price_with_markup` = price + 30%
|
||||
- `price_with_vat` = price + 50%
|
||||
|
||||
- Задача 2 — Скидочная корзина: дешёвые или дорогие
|
||||
|
||||
Нужно собрать товары под акцию
|
||||
|
||||
**✅ Условия:**
|
||||
|
||||
- участвуют товары с ценой **меньше 100** или **больше 1000**
|
||||
- скидка 15% (price - 15%)
|
||||
|
||||
**✅ Вывести:**
|
||||
|
||||
- `name`, `price`
|
||||
- `price_with_discount` = price - 15%
|
||||
|
||||
- Задача 3 — Категории для рекламы
|
||||
|
||||
Маркетолог просит товары только из нужных категорий:
|
||||
|
||||
**✅ Условия:**
|
||||
|
||||
- category в списке: `tablet`, `smartphone`, `mouse`
|
||||
- цена **не меньше 100**
|
||||
|
||||
**✅ Вывести:**
|
||||
|
||||
- `id`, `name`, `category`, `price`
|
||||
- сортировка по цене по убыванию
|
||||
- Задача 4 — Убрать iPhone из выборки
|
||||
|
||||
Собираем список товаров, **кроме iPhone**, чтобы сделать подборку “не Apple”.
|
||||
|
||||
**✅ Условия:**
|
||||
|
||||
- название **НЕ содержит** `iPhone`
|
||||
|
||||
**✅ Вывести:**
|
||||
|
||||
- `name`, `category`, `price`
|
||||
- Задача 5 — Поиск товаров по названию
|
||||
|
||||
Представь, что у пользователя есть строка поиска на сайте. Нужно сделать **2 запроса**, которые помогут искать товары по названию.
|
||||
|
||||
- 1) Найти товары, где в названии есть `"pro"` (без учёта регистра)
|
||||
|
||||
📌 Условия:
|
||||
|
||||
- поиск должен сработать на `pro`, `PRO`, `Pro`
|
||||
- вывести: `name`, `category`, `price`
|
||||
- 2) Найти товары, где в названии есть `"mx"` (без учёта регистра)
|
||||
|
||||
📌 Условия:
|
||||
|
||||
- вывести: `name`, `category`, `price`
|
||||
- отсортировать по `price DESC`
|
||||
*/
|
||||
|
||||
|
||||
SELECT name,
|
||||
category,
|
||||
price,
|
||||
(price * 0.30) + price AS price_with_markup,
|
||||
(price * 0.50) + price AS price_with_vat
|
||||
FROM dsolovianov.products
|
||||
WHERE category NOT IN ('smartwatch')
|
||||
AND (price >= 100 AND price <= 1300);
|
||||
|
||||
SELECT name,
|
||||
price,
|
||||
price - (price * 0.15) AS price_with_discount
|
||||
FROM dsolovianov.products
|
||||
WHERE price < 100 OR price > 1000;
|
||||
|
||||
SELECT id,
|
||||
name,
|
||||
category,
|
||||
price
|
||||
FROM dsolovianov.products
|
||||
WHERE category IN ('tablet', 'smartphone', 'mouse') AND price >= 100
|
||||
ORDER BY price DESC;
|
||||
|
||||
SELECT name,
|
||||
category,
|
||||
price
|
||||
FROM dsolovianov.products
|
||||
WHERE category NOT LIKE '%iPhone%';
|
||||
|
||||
SELECT id,
|
||||
name,
|
||||
category,
|
||||
price
|
||||
FROM dsolovianov.products
|
||||
WHERE name ILIKE '%pro%';
|
||||
|
||||
SELECT id,
|
||||
name,
|
||||
category,
|
||||
price
|
||||
FROM dsolovianov.products
|
||||
WHERE name ILIKE '%mx%';
|
||||
|
||||
Reference in New Issue
Block a user