帮助调整mymysql语句以生成所需的查询

帮助调整mymysql语句以生成所需的查询,mysql,select,group-by,Mysql,Select,Group By,下面的mysql语句基本上实现了我希望它实现的功能,除了一件事 SELECT a.tmc, w.date, ROUND(AVG(a.surface_temperature), 0) surface_temperature, ROUND(AVG(a.air_temperature), 0) air_temperature, ROUND(AVG(a.material_rate),0) material_rate, Time_Format(w.time, '%H:00') as time, R

下面的mysql语句基本上实现了我希望它实现的功能,除了一件事

SELECT 
a.tmc, w.date, ROUND(AVG(a.surface_temperature), 0) surface_temperature, ROUND(AVG(a.air_temperature), 0) air_temperature, 
ROUND(AVG(a.material_rate),0) material_rate, 
Time_Format(w.time, '%H:00') as time, 
ROUND(AVG(w.intensity), 0) intensity, 
FROM application a 
LEFT OUTER JOIN weather w ON a.DATE = w.DATE AND a.tmc = w.tmc 
WHERE w.DATE = '" & calendar1.SelectedDate & "' 
AND w.event= '" & weatherType.SelectedItem.Value & "' 
AND w.City = '" & sender.CssClass & "' 
GROUP BY time
这将产生:

这很好,但问题是每个位置都有多个TMC(将TMC视为城市中的消防站。大城市有多个TMC)

我需要它做的是平均每小时做的每件事,但要为每个tmc做,而不仅仅是根据时间和其他筛选标准出现的第一个tmc

我两次都参加了:

GROUP BY TIME AND TMC

and

GROUP BY TMC
但它们都只提供1次和1个位置

我需要如何调整这条语句,以便它能够得出每个tmc每小时所有这些标准的平均值

我想要具有以下输出的内容:

Time TMC       Temp
4:00 107+4807   27
4:00 108+3352   32
5:00 107+4807   28
5:00 105+2274   28

我希望这是有意义的

我想你需要用逗号把它们分开:

GROUP BY time, tmc
这可能不是很清楚:

i、 例如,您可以指定多个列以形成更细粒度的组

当您指定逻辑组合时,如

GROUP BY TIME AND TMC

事情看起来似乎是可行的,但生成的组将取决于时间和tmc的“逻辑”值-您将为同时显示为“true”的行生成一个组,并为其他所有行生成一个组。

是的,逗号按值分隔组。第一个值将优先。因此,如果您说
按时间分组,tmc将按时间分组
时间
如果
时间
相同,它将按
TMC

GROUP BY TIME AND TMC