This media is not supported in your browser
VIEW IN TELEGRAM
Netology — Платформа, на которой вы можете найти огромное множество курсов по программированию и не только
⛓ Ссылочка: netology.ru
➡️ SQL Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3
Сегодня рассмотрим, как оконные функции могут значительно упростить сложные аналитические запросы. Эти функции делают обработку данных мощной и производительной, избегая громоздких подзапросов и группировок.
Простой пример с ROW_NUMBER()
Функция
ROW_NUMBER
позволяет нумеровать строки в пределах определённой группы. Это полезно для сортировки данных:SELECT employee_id, department_id, salary,
ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank
FROM employees;
Использование SUM() OVER для накопительных сумм
Функция
SUM
с оконной спецификацией помогает вычислять накопительные суммы, не группируя данные:SELECT order_id, order_date, amount,
SUM(amount) OVER (ORDER BY order_date) AS cumulative_total
FROM orders;
Сравнение с предыдущим значением с LAG()
Функция
LAG
позволяет взять значение из предыдущей строки. Это удобно для анализа изменений в данных:SELECT employee_id, salary,
LAG(salary, 1) OVER (ORDER BY hire_date) AS previous_salary
FROM employees;
🔥 Не забывайте о мощных инструментах SQL, таких как оконные функции! Они позволяют решать сложные задачи проще, сохраняя читаемость и производительность запросов.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍11🔥2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Knight Lab — Интересная платформа для изучения SQL, в ней присутствует множество полезной информации о том, как создавать запросы
⛓ Ссылочка: mystery.knightlab.com
➡️ SQL Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5🤝1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍9🤝7
📖 SQL Server Наладка и оптимизация для профессионалов
⬇️ Cкачать книгу
➡️ SQL Ready | #книга
Книга охватывает новейшие функции SQL Server, что делает её актуальной для профессионалов, стремящихся оставаться на переднем крае технологий
Автор: Дмитрий Короткевич
Год: 2023
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4
• COALESCE — Возвращает первое ненулевое значение из списка переданных аргументов. Полезно для обработки NULL значений.
• ROW_NUMBER — Присваивает уникальный номер каждой строке в наборе данных на основе заданной сортировки. Часто используется для создания порядковых номеров или пагинации.
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5🤝3
This media is not supported in your browser
VIEW IN TELEGRAM
Live SQL — Интересная платформа для изучения SQL, в ней присутствует поиск по обучающим статьям, вы можете с легкостью обучиться именно тому, что вам сейчас нужно
⛓ Ссылочка: livesql.oracle
➡️ SQL Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Работа с уникальными данными — ключевая задача в SQL. Рассмотрим приемы поиска, удаления и предотвращения дубликатов:
1. Поиск дубликатов
Используйте группировку и фильтрацию, чтобы найти повторяющиеся записи:
SELECT email, COUNT(*) AS occurrences
FROM users
GROUP BY email
HAVING COUNT(*) > 1;
2. Удаление дубликатов
Удалите повторяющиеся строки, сохранив только одну:
DELETE FROM users
WHERE id NOT IN (
SELECT MIN(id)
FROM users
GROUP BY email
);
3. Предотвращение дубликатов
Обеспечьте уникальность данных с помощью уникальных индексов:
CREATE UNIQUE INDEX unique_email ON users(email);
Этот индекс автоматически предотвращает добавление дублирующихся email
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
Рассмотрим создание простой базы данных для учёта задач, где использовали две таблицы: одну для хранения задач, а другую для статусов задач
- Создание таблиц
- Извлечение данных
- Выполнение запросов
- Редактирование
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥9🤝3
Рекурсивные запросы с CTE в SQL
Hазберем мощный инструмент — рекурсивные запросы с использованием CTE. Эта техника позволяет работать с иерархическими данными или решать задачи, требующие итераций:
Рекурсивный CTE — это временная таблица, которая ссылается на саму себя, чтобы обрабатывать данные поэтапно.
Предположим, у нас есть таблица
Сначала выбираем данные о целевом менеджере:
Теперь связываем подчиненных менеджера с данными базового уровня:
Наконец, извлекаем всю построенную иерархию:
Результат:
Если у
🔥 Рекурсивные CTE позволяют элегантно работать с иерархиями и выполнять сложные итеративные операции. Осваивая их, вы сможете эффективно решать задачи, которые раньше казались сложными или даже невозможными в SQL.
➡️ SQL Ready | #практика
Hазберем мощный инструмент — рекурсивные запросы с использованием CTE. Эта техника позволяет работать с иерархическими данными или решать задачи, требующие итераций:
Рекурсивный CTE — это временная таблица, которая ссылается на саму себя, чтобы обрабатывать данные поэтапно.
Предположим, у нас есть таблица
employees
с колонками: id
, name
, manager_id
. Сначала выбираем данные о целевом менеджере:
WITH RECURSIVE EmployeeHierarchy AS (
SELECT id, name, manager_id
FROM employees
WHERE name = 'Alice'
Теперь связываем подчиненных менеджера с данными базового уровня:
UNION ALL
SELECT e.id, e.name, e.manager_id
FROM employees e
INNER JOIN EmployeeHierarchy eh
ON e.manager_id = eh.id
)
Наконец, извлекаем всю построенную иерархию:
SELECT * FROM EmployeeHierarchy;
Результат:
Если у
Alice
есть прямые и косвенные подчиненные, запрос вернет их всех. 🔥 Рекурсивные CTE позволяют элегантно работать с иерархиями и выполнять сложные итеративные операции. Осваивая их, вы сможете эффективно решать задачи, которые раньше казались сложными или даже невозможными в SQL.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4🤝4