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
В этой статье:
• Использование BitDive и Cursor для анализа поведения приложений
• Обнаружение и устранение N+1 проблемы в SQL-запросах
• Сокращение количества SQL-запросов и ускорение отклика
🔊 Очень советую прочитать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5❤1
•
CHARINDEX
— ищет подстроку в строке и возвращает её позицию. Отлично для анализа, парсинга и фильтрации по шаблонам. •
LTRIM
— удаляет начальные пробелы из строки. Полезно при работе с ручным вводом, логами и грязными данными.🔥 — если узнали новое
🤝 — если уже пользовались
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🤝6👍5❤1
Локальные — для внутренней сети, публичные — выданы провайдером. Бывают статические (постоянные) и динамические (меняются со временем). IPv4 — привычный формат, но уже не хватает адресов, IPv6 — более современный и масштабируемый.
На картинке — основные типы IP-адресов, различия между ними и зачем нужен VPN для защиты.
Сохрани, чтобы не запутаться в сетях!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍7🔥6
Иногда нужно посчитать сумму, номер строки или ранг — но без группировки и потери данных. Именно для этого и используется OVER().
Что важно знать:
• Оконные функции считают агрегаты по строкам, не объединяя их — все данные остаются на месте.
• OVER() работает с PARTITION BY — чтобы разбить на группы, и ORDER BY — чтобы задать порядок.
• Это как GROUP BY, только без удаления строк — аналитика поверх полного набора данных.
🔥 — если узнал что-то новое
🤝 — если уже давно используешь
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤝10👍6