Компания Software Cats уже более пяти лет занимается аутстафом и аутсорсом по направлениям
Если у вас есть ИТ-проблема, оставьте ваши контакты, и мы поможем составить план ее решения.
SELECT email
FROM users;
SELECT *
FROM users
WHERE age > 30;
SELECT *
FROM users
WHERE age > 30
AND status = 'active';
SELECT *
FROM users
ORDER BY age;
SELECT *
FROM users
ORDER BY status, age DESC;
SELECT *
FROM users;
SELECT *
FROM users
WHERE role=’ADMIN’;
SELECT *
FROM users
LIMIT 10;
SELECT *
FROM orders
ORDER BY created_at DESC LIMIT 5;
SELECT COUNT(*)
FROM users;
SELECT MAX(age)
FROM users;
SELECT AVG(age)
FROM users
WHERE status = 'active';
SELECT status, COUNT(*)
FROM users
GROUP BY status;
SELECT role, AVG(age)
FROM users
GROUP BY role;
SELECT id, status, COUNT(*)
FROM users
GROUP BY status;
SELECT role, COUNT(*)
FROM users
GROUP BY role
HAVING COUNT(*) > 5;
id | name |
1 | Иван |
2 | Мария |
id | user_id | amount |
1 | 1 | 500 |
2 | 2 | 700 |
3 | 1 | 250 |
SELECT users.name, orders.amount
FROM users
JOIN orders ON users.id = orders.user_id;
name | amount |
Иван | 500 |
Мария | 700 |
Иван | 250 |
SELECT users.name, orders.amount
FROM users
INNER JOIN orders
ON users.id = orders.user_id;
SELECT users.name, orders.amount
FROM users
FULL JOIN orders
ON users.id = orders.user_id;
SELECT users.name, orders.amount
FROM users
LEFT JOIN orders
ON users.id = orders.user_id;
SELECT users.name, orders.amount
FROM users
RIGHT JOIN orders
ON users.id = orders.user_id;
SELECT e.name AS employee, m.name AS manager
FROM employees e
LEFT JOIN employees m
ON e.manager_id = m.id;
SELECT name FROM customers
WHERE total_spent > (
SELECT AVG(total_spent) FROM customers
);
Где используется | Пример |
В WHERE | WHERE age > (SELECT AVG(age)...) |
В FROM (как таблица) | FROM (SELECT ...) |
В SELECT | SELECT (SELECT COUNT(*) ...) |
customer_id | name | age |
1 | Иван | 34 |
2 | Мария | 28 |
3 | Ирина | 41 |
4 | Игорь | 25 |
order_id | customer_id | product_id | order_date |
1001 | 1 | 101 | 2025-08-03 |
1002 | 2 | 102 | 2025-08-01 |
1003 | 3 | 105 | 2025-08-05 |
1004 | 1 | 103 | 2025-07-30 |
1005 | 4 | 104 | 2025-08-04 |
1006 | 2 | 103 | 2025-08-04 |
product_id | name | price |
101 | Смартфон | 70000 |
102 | Ноутбук | 120000 |
103 | Наушники | 15000 |
104 | Умные часы | 25000 |
105 | Граф. планшет | 90000 |
SELECT product_id, name, price
FROM products
ORDER BY price DESC
LIMIT 3;
product_id | name | price |
102 | Ноутбук | 120000 |
105 | Граф. планшет | 90000 |
101 | Смартфон | 70000 |
SELECT *
FROM orders
WHERE product_id IN (102, 105, 101)
AND order_date >= CURRENT_DATE - INTERVAL '1 month';
SELECT *
FROM orders
WHERE product_id IN (
SELECT product_id
FROM products
ORDER BY price DESC
LIMIT 3
)
AND order_date >= CURRENT_DATE - INTERVAL '1 month';
order_id | customer_id | product_id | order_date |
1001 | 1 | 101 | 2025-08-03 |
1002 | 2 | 102 | 2025-08-01 |
1003 | 3 | 105 | 2025-08-05 |
SELECT *
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id
WHERE product_id IN (
SELECT product_id
FROM products
ORDER BY price DESC
LIMIT 3
)
AND order_date >= CURRENT_DATE - INTERVAL '1 month';
order_id | customer_id | product_id | order_date | name | age |
1001 | 1 | 101 | 2025-08-03 | Иван | 34 |
1002 | 2 | 102 | 2025-08-01 | Мария | 28 |
1003 | 3 | 105 | 2025-08-05 | Ирина | 41 |
SELECT AVG(customers.age)
FROM orders
JOIN customers ON orders.customer_id = customers.customer_id
WHERE product_id IN (
SELECT product_id
FROM products
ORDER BY price DESC
LIMIT 3
)
AND order_date >= CURRENT_DATE - INTERVAL '1 month';