add file filtering with 5 tasks

This commit is contained in:
Dmitry Medvedev
2026-05-21 00:40:28 +05:00
parent 0335c6eca4
commit 9082197c80
+44
View File
@@ -0,0 +1,44 @@
-- TASK 1
--Задача 1 — Товары для продажи
SELECT name, category, price, price * 1.3 AS price_with_markup, price * 1.5 AS price_with_vat
FROM products
WHERE in_stock IS TRUE AND category != 'smartwatch' AND price BETWEEN 100 AND 1300;
/* Что лучше читается `BETWEEN 100 AND 1300` или `price >= 100 AND price <= 1300` и почему?
Читается лучше выражение с between потому что сразу видно и понятно внутри какого диапазона мы находимся,
а когда используются знаки сравнения, то необходимо вчитываться и вдумываться, какой знаки что именно он обозначает*/
--TASK 2
-- Задача 2 — Скидочная корзина: дешёвые или дорогие
SELECT name, price, price * 0.85 AS price_with_discount
FROM products
WHERE price < 100 OR price > 1000;
/* Почему важно явно писать скобки в условии с **`OR`**, даже если кажется, что и так понятно?
потому что скобки защищают от логических ошибок */
--TASK 3
--Задача 3 — Категории для рекламы
SELECT id, name, category, price
FROM products
WHERE (category = 'tablet' OR category = 'smartphone' OR category = 'mouse') AND price < 1000
ORDER BY price DESC;
--TASK 4
-- Задача 4 — Убрать iPhone из выборки
SELECT name, category, price
FROM products
WHERE name NOT LIKE '%iPhone%';
--TASK 5
-- Задача 5 — Поиск товаров по названию
SELECT *
FROM products
WHERE name ILIKE '%pro%';
SELECT *
FROM products
WHERE name ILIKE '%mx%';
/* так лучше потому что для магазина с поисковой строкой не должно быть важно какой регистр используют люди для поиска товара,
в любом случае, должен находиться релевантный товар для человека*/