base sql done
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
CREATE TABLE users (
|
CREATE TABLE users (
|
||||||
id int PRIMARY KEY, -- NOT NULL
|
id int PRIMARY KEY, -- NOT NULL
|
||||||
"name" varchar(100) NOT NULL,
|
name varchar(100) NOT NULL,
|
||||||
age int,
|
age int,
|
||||||
email varchar(100),
|
email varchar(100),
|
||||||
country varchar(2),
|
country varchar(2),
|
||||||
@@ -10,7 +10,7 @@ CREATE TABLE users (
|
|||||||
|
|
||||||
CREATE TABLE products (
|
CREATE TABLE products (
|
||||||
id int PRIMARY KEY,
|
id int PRIMARY KEY,
|
||||||
"name" varchar(100) NOT NULL,
|
name varchar(100) NOT NULL,
|
||||||
category varchar(50),
|
category varchar(50),
|
||||||
price decimal(10,2) NOT NULL,
|
price decimal(10,2) NOT NULL,
|
||||||
in_stock BOOLEAN -- или int, потому что или на складе или не на складе
|
in_stock BOOLEAN -- или int, потому что или на складе или не на складе
|
||||||
@@ -78,3 +78,111 @@ INSERT INTO pmikhailov.order_items
|
|||||||
(6, 1, 1, 82000),
|
(6, 1, 1, 82000),
|
||||||
(7, 3, 1, 9000),
|
(7, 3, 1, 9000),
|
||||||
(8, 4, 2, 2800);
|
(8, 4, 2, 2800);
|
||||||
|
|
||||||
|
SELECT id, name, country, created_at, email
|
||||||
|
FROM users
|
||||||
|
ORDER BY created_at DESC, name ASC;
|
||||||
|
|
||||||
|
SELECT id, name, country
|
||||||
|
FROM users
|
||||||
|
WHERE country = 'US'
|
||||||
|
ORDER BY name ASC;
|
||||||
|
|
||||||
|
SELECT id, name, country
|
||||||
|
FROM users
|
||||||
|
WHERE country = 'UK'
|
||||||
|
ORDER BY name ASC;
|
||||||
|
|
||||||
|
SELECT id, name, email
|
||||||
|
FROM users u
|
||||||
|
WHERE email IS NOT NULL
|
||||||
|
ORDER BY name ASC;
|
||||||
|
|
||||||
|
SELECT DISTINCT lower(email)
|
||||||
|
FROM users u
|
||||||
|
WHERE email IS NOT null;
|
||||||
|
|
||||||
|
SELECT id, name, created_at
|
||||||
|
FROM users
|
||||||
|
WHERE created_at >= '2024-02-05 09:30:00.000 +0100'
|
||||||
|
ORDER BY created_at DESC
|
||||||
|
LIMIT 2 OFFSET 1;
|
||||||
|
|
||||||
|
|
||||||
|
/* Задача 1 */
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
name,
|
||||||
|
category,
|
||||||
|
price,
|
||||||
|
price * 1.3 AS price_with_markup,
|
||||||
|
price * 1.5 AS price_with_vat
|
||||||
|
FROM
|
||||||
|
products p
|
||||||
|
WHERE
|
||||||
|
in_stock IS TRUE
|
||||||
|
AND price BETWEEN 100 AND 1300;
|
||||||
|
|
||||||
|
|
||||||
|
/* Задача 2 */
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
name,
|
||||||
|
price,
|
||||||
|
price * 0.85 AS price_with_discount
|
||||||
|
FROM
|
||||||
|
products p
|
||||||
|
WHERE
|
||||||
|
(price <= 100) OR (price >= 1000);
|
||||||
|
|
||||||
|
|
||||||
|
/* Задача 3 */
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
id,
|
||||||
|
name,
|
||||||
|
category,
|
||||||
|
price
|
||||||
|
FROM
|
||||||
|
products p
|
||||||
|
WHERE
|
||||||
|
category IN ('tablet', 'smartphone', 'mouse')
|
||||||
|
AND price >= 100;
|
||||||
|
|
||||||
|
|
||||||
|
/* Задача 4 */
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
name,
|
||||||
|
category,
|
||||||
|
price
|
||||||
|
FROM
|
||||||
|
products p
|
||||||
|
WHERE name NOT ILIKE '%iPhone%';
|
||||||
|
|
||||||
|
|
||||||
|
/* Задача 5 */
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
name,
|
||||||
|
category,
|
||||||
|
price
|
||||||
|
FROM
|
||||||
|
products p
|
||||||
|
WHERE
|
||||||
|
name NOT ILIKE '%pro%'
|
||||||
|
ORDER BY
|
||||||
|
price DESC;
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
name,
|
||||||
|
category,
|
||||||
|
price
|
||||||
|
FROM
|
||||||
|
products p
|
||||||
|
WHERE
|
||||||
|
name NOT ILIKE '%mx%';
|
||||||
|
ORDER BY
|
||||||
|
price DESC;
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user