Сделал практику по 'Фильтрация'
This commit is contained in:
@@ -0,0 +1,78 @@
|
|||||||
|
-- Задание 1
|
||||||
|
SELECT
|
||||||
|
name,
|
||||||
|
category,
|
||||||
|
price,
|
||||||
|
price * 1.30 AS price_with_markup,
|
||||||
|
price * 1.50 AS price_with_vat
|
||||||
|
FROM
|
||||||
|
mnoskov.products
|
||||||
|
WHERE
|
||||||
|
in_stock = TRUE AND
|
||||||
|
category != 'smartwatch' AND -- категории smartwatch нет в предоставленных данных для заполнения
|
||||||
|
price BETWEEN 100 AND 1300;
|
||||||
|
-- Что лучше читается BETWEEN 100 AND 1300 или price >= 100 AND price <= 1300 и почему?
|
||||||
|
-- Лучше читается первый вариант, потому что просто прочитал и понял, а не думаешь над знаками, и первый вариант короче
|
||||||
|
|
||||||
|
|
||||||
|
-- Задание 2
|
||||||
|
SELECT
|
||||||
|
name,
|
||||||
|
price,
|
||||||
|
price * 0.85 AS price_with_discount
|
||||||
|
FROM
|
||||||
|
mnoskov.products
|
||||||
|
WHERE
|
||||||
|
(price < 100 OR price > 1000);
|
||||||
|
-- Нужно отделять OR скобками, потому что если в условии будет ещё и AND, то логика может поломаться потому что AND выполняется раньше чем OR
|
||||||
|
|
||||||
|
|
||||||
|
-- Задание 3
|
||||||
|
SELECT
|
||||||
|
id,
|
||||||
|
name,
|
||||||
|
category,
|
||||||
|
price
|
||||||
|
FROM
|
||||||
|
mnoskov.products
|
||||||
|
WHERE
|
||||||
|
category IN ('tablet', 'smartphone', 'mouse') AND
|
||||||
|
price >= 100
|
||||||
|
ORDER BY
|
||||||
|
price DESC;
|
||||||
|
|
||||||
|
|
||||||
|
--Задание 4
|
||||||
|
SELECT
|
||||||
|
name,
|
||||||
|
category,
|
||||||
|
price
|
||||||
|
FROM
|
||||||
|
mnoskov.products
|
||||||
|
WHERE
|
||||||
|
name NOT LIKE '%iPhone%';
|
||||||
|
|
||||||
|
|
||||||
|
-- Задание 5
|
||||||
|
-- 1)
|
||||||
|
SELECT
|
||||||
|
name,
|
||||||
|
category,
|
||||||
|
price
|
||||||
|
FROM
|
||||||
|
mnoskov.products
|
||||||
|
WHERE
|
||||||
|
name ILIKE '%pro%';
|
||||||
|
|
||||||
|
-- 2)
|
||||||
|
SELECT
|
||||||
|
name,
|
||||||
|
category,
|
||||||
|
price
|
||||||
|
FROM
|
||||||
|
mnoskov.products
|
||||||
|
WHERE
|
||||||
|
name ILIKE '%mx%'
|
||||||
|
ORDER BY
|
||||||
|
price DESC;
|
||||||
|
-- Для поисковой строи лучше ILIKE, потому что он не учитывает регистр - кто-то пишет с большой буквы, кто-то с маленькой, а кто-то случайно включил капс.
|
||||||
Reference in New Issue
Block a user