【发布时间】:2013-06-26 13:07:27
【问题描述】:
我有 4 个不同日期的表格,表格如下所示:
我要做的是根据小时在所有四天中找到每个 service_name,function_name 的最大 tps。例如,在我发布的图中,第一个 raw 中的 service_name(BatchItemService) 具有 (getItemAvailability) 作为日期 13-06-12 01 中的 function_name。我在同一小时的所有其他 3 个表中具有相同的 function_name 的相同 service_name “ 01" 但有不同的日子,比如第 13、14、15 天。我想在所有四天中找到这个 service_name,function_name 设置为小时“01”的最大 tps。 我试过了,但结果不正确。
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);
非常感谢...
【问题讨论】:
-
正确的答案是有一个带有日期列的表。我强烈建议您尽快放弃当前的桌子设计。
-
非常感谢,我设计了新表,操作起来更容易了。