Сегодня напишем запрос, который поможет выявить самые «прожорливые» сервера — те, что тратят больше энергии при одинаковой нагрузке.
В этом посте:
• Считаем средний расход энергии на единицу загрузки процессора;
• Определяем сервера с аномально высоким потреблением;
• Строим топ-5 неэффективных машин.
Такой разбор полезен для оптимизации инфраструктуры и помогает снизить затраты.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤6👍6🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Сайт наполнен подробными учебниками и задачниками по различным языкам — всё в одном месте, понятно и с примерами.
Как бонус — отдельный справочник по программистскому сленгу, чтобы ты понимал, что говорят коллеги и мемы в чате.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥10👍5🤝2
NULLS FIRST / NULLS LAST — контролируем сортировку NULL значений!
Проблема: где окажутся
Явно контролируем позицию
В обратном случае для возрастания:
MySQL и SQL Server нативного
🔥 Так что,
➡️ SQL Ready | #практика
Проблема: где окажутся
NULL при сортировке? Например в PostgreSQL при ORDER BY ... DESC NULL окажутся в началеSELECT name, salary
FROM employees
ORDER BY salary DESC;
Явно контролируем позицию
NULL (Postgres / Oracle / SQLite). Так NULL всегда внизу и не попадут в топ зарплат:SELECT name, salary
FROM employees
ORDER BY salary DESC NULLS LAST
LIMIT 10;
В обратном случае для возрастания:
ORDER BY hire_date ASC NULLS FIRST;
MySQL и SQL Server нативного
NULLS FIRST / NULLS LAST не поддерживают — используйте обход:-- MySQL
ORDER BY (salary IS NULL), salary DESC;
-- SQL Server
ORDER BY CASE WHEN salary IS NULL THEN 1 ELSE 0 END, salary DESC;
🔥 Так что,
NULLS FIRST/LAST делает сортировку предсказуемой и удобной.Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍7🔥5🤝3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥8❤2🤝2
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь тебя ждут десятки задач: от простых выборок до хитрых подзапросов и агрегаций. Всё подаётся через практику — никакой скучной теории, только реальные кейсы, где приходится думать и искать решение.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍11🤝6👎1
Хотите видеть, какие изменения произошли между версиями документов без циклов и внешних скриптов?
В этом гайде:
• Получаем предыдущую версию документа с LAG();
• Считаем разницу по длине текста, чтобы видеть масштаб изменений;
• Фильтруем только существенные правки для фокусировки на важных правках.
С помощью оконных функций можно сразу сравнивать соседние версии, считать разницу и фильтровать только значимые изменения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12🔥5👍4
Рекурсивные CTE: создаём календарь без таблицы дат!
Когда в базе нет отдельной таблицы календаря, можно сгенерировать последовательность прямо в запросе:
Так формируется список дней от 1 до 7 января:
Теперь календарь можно соединить с заказами, чтобы увидеть пропуски:
🔥 Рекурсивные
➡️ SQL Ready | #практика
Когда в базе нет отдельной таблицы календаря, можно сгенерировать последовательность прямо в запросе:
WITH RECURSIVE dates AS (
SELECT CAST('2025-01-01' AS DATE) AS d
UNION ALL
SELECT d + INTERVAL '1 day'
FROM dates WHERE d < '2025-01-07'
)
Так формируется список дней от 1 до 7 января:
SELECT d
FROM dates;
Теперь календарь можно соединить с заказами, чтобы увидеть пропуски:
SELECT d, COALESCE(SUM(o.total),0) AS total
FROM dates d
LEFT JOIN orders o ON o.order_date = d.d
GROUP BY d
ORDER BY d;
🔥 Рекурсивные
CTE позволяют генерировать временные ряды или числа «на лету», без вспомогательных таблиц.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍7❤4👎2🤝2