У меня есть 4 таблицы для разных дат, таблица выглядит следующим образом:найти максимальное значение среди различных таблиц группы по дате
, что я пытаюсь сделать, это найти максимальный ТПС для каждого имя_пользователя, имя_функции между всеми четырьмя днями в соответствии с часом. например, на рисунке, который я опубликовал, есть имя service_name (BatchItemService) в первом сыром, которое имеет (getItemAvailability) как имя_функции в дате 13-06-12 01. У меня есть одно имя службы для одного и того же имени_функции во всех остальных трех таблицах за тот же час " 01 ", но с разными днями, как день 13,14,15. Я хочу найти максимум tps для этого service_name, имя_функции, установленного для часа «01» среди всех четырех дней. Я пробовал это, но это дало мне неправильный результат.
SELECT
t.service_name,
t.function_name,
t.date,
max(t.tps)
FROM
(SELECT
service_name, function_name, date, tps
FROM
trans_per_hr_2013_06_12
UNION ALL
SELECT
service_name, function_name, date,tps
FROM
trans_per_hr_2013_06_13
GROUP BY service_name,function_name,date
UNION ALL
SELECT
service_name, function_name,date, tps
FROM
trans_per_hr_2013_06_14
UNION ALL
SELECT
service_name, function_name, date, tps
FROM
trans_per_hr_2013_06_15
UNION ALL
SELECT
service_name, function_name,date, tps
FROM
trans_per_hr_2013_06_16
) t
GROUP BY t.service_name,t.function_name,hour(t.Date);
Большое спасибо ...
Правильный ответ: иметь одну таблицу с столбцом даты. Я настоятельно рекомендую вам как можно скорее отказаться от вашего текущего дизайна таблицы. – Bohemian
большое спасибо, я разработал новый стол, и операции были намного проще делать с ними. – tkyass