Медиана — это значение, которое делит набор данных на две равные части. В SQL медиану можно найти с помощью оконных функций и агрегации. Для нечетного количества строк медиана — это значение в середине, для четного — среднее двух центральных значений.
Запрос сортирует данные, нумерует строки и находит центральные значения. Если количество строк четное, вычисляется среднее между двумя центральными значениями. Этот подход работает в большинстве SQL-систем.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ SQL собеседования
WITH OrderedData AS (
SELECT value,
ROW_NUMBER() OVER (ORDER BY value) AS row_num,
COUNT(*) OVER () AS total_count
FROM dataset
)
SELECT AVG(value) AS median
FROM OrderedData
WHERE row_num IN (
(total_count + 1) / 2,
(total_count + 2) / 2
);
Запрос сортирует данные, нумерует строки и находит центральные значения. Если количество строк четное, вычисляется среднее между двумя центральными значениями. Этот подход работает в большинстве SQL-систем.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤔1
ьзуют CASE или PIVOT (в поддерживаемых СУБД). Пример с CASE (универсальный способ):
SELECT
product_category,
SUM(CASE WHEN year = 2022 THEN revenue ELSE 0 END) AS revenue_2022,
SUM(CASE WHEN year = 2023 THEN revenue ELSE 0 END) AS revenue_2023
FROM sales
GROUP BY product_category;
Группирует выручку по категориям товаров с разбивкой по годам.
Пример с PIVOT (SQL Server, Oracle):
SELECT *
FROM (
SELECT product_category, year, revenue
FROM sales
) AS source
PIVOT (
SUM(revenue) FOR year IN ([2022], [2023])
) AS pivot_table;
Аналогичный результат, но с использованием встроенного оператора.
Для динамического свода (когда столбцы заранее неизвестны) потребуется динамический SQL.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12