add file filtering with 5 tasks
This commit is contained in:
@@ -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%';
|
||||||
|
|
||||||
|
/* так лучше потому что для магазина с поисковой строкой не должно быть важно какой регистр используют люди для поиска товара,
|
||||||
|
в любом случае, должен находиться релевантный товар для человека*/
|
||||||
Reference in New Issue
Block a user