У меня сложный запрос в Postgres, который я пытаюсь преобразовать в MySQL.Запрос Postgres имеет три связанных запроса.Первые два создают две общие таблицы, а последний запрос объединяет эти две общие таблицы.Упрощенная версия запроса выглядит примерно так.Есть ли способ объединить эти две общие таблицы в MySQL?Мне нужно, чтобы запрос выполнялся для 5.6,5.7 и 8.0, поэтому новая функция для CTE в 8.0 не является решением.
(Select table1.y_id as year_id,
SUM(table1.total_weight) AS metric_value
from (SELECT student_name,y_id,total_weight from student_metrics where y_id>10 ) table1
group by year_id
order by metric_value DESC
limit by 5
)table2
Третий запрос должен объединить table1 и table2 на table1.y_id = table2.year_id.
Чтобы дать общее представление о том, что делает каждый запрос:
- Запрос 1 выбирает данные из главной таблицы (скажем, таблица 1) и сохраняет их в общей таблице на основе некоторых условий.
- Запрос 2 групп и сортировка строк, полученных в Запросе 1, на основе указанного пользователемстолбец и ограничивает его до верха 'N'
- Запрос 3 возвращает все данные (в таблице 1) только этих N уникальных идентификаторов (полученных из таблицы 2), выполнив объединение в table1.id =
table2.id