This media is not supported in your browser
VIEW IN TELEGRAM
SQL Murder Mystery — это интерактивная игра, в которой нужно использовать SQL-запросы для расследования виртуального убийства.
📌 Ссылочка: mystery.knightlab
➡️ SQL Ready | #ресурс
Игрокам предоставляется доступ к базе данных с информацией о преступлении, и они должны применять свои навыки работы с SQL для поиска улик, анализа данных и выявления преступника.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5
INSERT ON CONFLICT очень полезен в случаях, когда нужно вставить новую запись в таблицу, но если запись с таким же уникальным ключом уже существует — нужно обновить эту запись.
Следует использовать:
• Для сокращения запросов — когда вместо двух запросов (SELECT + INSERT/UPDATE) нужно выполнить только один.
• Для оптимизации — производительности и минимизации количества запросов к базе данных.
• Для конкурентный доступа — когда нужно избежать проблем с конкурентным доступом.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25🤝10👍5👎2❤1
REGEXP — инструмент, который удобно использовать, если требуется сложный и гибкий поиск по шаблону. Например, поиск по нескольким условиям или использование специальных символов и диапазонов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍10❤6🤝1
ALL и ANY в SQL — учимся использовать для сравнения с подзапросами!
Эти операторы предназначены для сравнения результатов одного
Представим, что нам нужно найти все продукты, цена которых выше, чем цена любого продукта в категории
Теперь найдем всех клиентов, заказавших хотя бы один продукт с ценой выше 1000 рублей:
И найдем всех клиентов, которые заказывали продукты из определенной категории:
🔥 Но помните, что использование
➡️ SQL Ready | #практика
Эти операторы предназначены для сравнения результатов одного
SELECT
с результатами второго SELECT
из подзапроса, что может быть удобно в некоторых случаях: если подзапрос возвращает небольшое количество строк или когда нужно сравнить значение хотя бы с одним значением из подзапроса.Представим, что нам нужно найти все продукты, цена которых выше, чем цена любого продукта в категории
Discount
:SELECT product, price
FROM products
WHERE price > ALL (SELECT price FROM products WHERE category = 'Discount');
Теперь найдем всех клиентов, заказавших хотя бы один продукт с ценой выше 1000 рублей:
SELECT DISTINCT customer_id
FROM orders
WHERE product_id = ANY (SELECT product_id FROM products WHERE price > 1000);
И найдем всех клиентов, которые заказывали продукты из определенной категории:
SELECT DISTINCT customer_id
FROM orders
WHERE product_id = ANY (SELECT product_id FROM products WHERE category = 'Electronics');
🔥 Но помните, что использование
ALL
и ANY
возможно только с подзапросами и может быть неэффективным, если подзапрос возвращает большое количество строк.Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍10🔥4
👍14❤4🔥4👎2
Плейлист для тех, кто хочет не просто писать запросы, а понимать, как устроены базы данных. Реляционная модель, поведение SQL-операторов, индексы, нормализация, ACID, CRUD, NoSQL — всё по делу и с акцентом на логику работы с данными.
Ссылочка на плейлист: YouTube🖤
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4
Нужно найти пиковые часы заказов по времени суток. Для этого воспользуемся функцией EXTRACT, чтобы вытащить час из даты заказа, и посчитаем количество заказов в каждом часе.
В этой задаче:
• EXTRACT(HOUR FROM ...) — вытаскиваем час из order_date.
• GROUP BY + COUNT — группируем по часу и считаем, сколько заказов было.
• ORDER BY — сортируем по убыванию, чтобы получить часы с наибольшей активностью.
🔥 — если попробуешь повторить
🤝 — если уже делал подобное
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26👍7🤝5❤3👎2