Суб-Query или CteMySql

Форум по Mysql
Ответить
Anonymous
 Суб-Query или Cte

Сообщение Anonymous »

В настоящее время я работаю над оптимизацией запроса на набор данных с 14 столбцами и 6,6 миллионами строк, и я хотел бы понять, какой подход лучше с точки зрения эффективности, ясности и обслуживания.
У меня есть две версии запроса, и, хотя оба работают, мне любопытно услышать ваше мнение о том, какое из них вы бы предпочли и почему. < /P>
Цель Запросы - получить 3 лучших наиболее запрашиваемых услуг на основе количества запросов для каждого сезона. Для выполнения, cte один взял 1m24s .
Запрос 1: Использование Sub-Query

Код: Выделить всё

SELECT season, service_name, request_count
FROM (
SELECT season, service_name, COUNT(*) AS request_count,
ROW_NUMBER() OVER (PARTITION BY season ORDER BY COUNT(*) DESC) AS row_num
FROM service_requests_clean_v3
GROUP BY season, service_name
) AS ranked_requests
WHERE row_num IN (1,2,3)
ORDER BY season;
Запрос 2: Использование Cte

Код: Выделить всё

WITH ranked_requests AS (
SELECT season, service_name, COUNT(*) AS request_count
FROM service_requests_clean_v3
GROUP BY season, service_name
),
top_requests AS (
SELECT season, service_name, request_count,
ROW_NUMBER() OVER (PARTITION BY season ORDER BY request_count DESC) AS row_num
FROM ranked_requests
)
SELECT season, service_name, request_count
FROM top_requests
WHERE row_num IN (1,2,3)
ORDER BY season;
Ниже изображение образца данных

С нетерпением жду ваших мнений!

Подробнее здесь: https://stackoverflow.com/questions/794 ... ery-or-cte
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»