我正在对天气数据库进行 SQL 查询,我需要wind_direction 和windspeed。
这是我的当前查询:

SELECT wind_direction,
       windspeed
  FROM weather
  WHERE time >= curdate() and
        time < (curdate() + interval 1 day) AND
        windspeed > 0
  ORDER BY wind_direction ASC

这将删除风速 = 0 的所有值,并且只显示今天的数据。

查询输出:
wind_direction   windspeed
0               10.1
0               11.2
23              7.6
23              1.4

如您所见,我得到了可以理解的重复值,但我的图形系统不支持这一点,它不知道要使用哪个值。
我需要的是一个独特的 wind_direction 和该方向的 avg() 风速。

最佳答案

SELECT  wind_direction, AVG(windspeed)
FROM    weather
WHERE   time >= curdate() and time < (curdate() + interval 1 day)
        AND windspeed > 0
GROUP BY
        wind_direction
ORDER BY
        wind_direction ASC

如果你想要一个 wind_direction ,比如说,平均速度最大的,使用这个:
SELECT  wind_direction, AVG(windspeed) AS avg_speed
FROM    weather
WHERE   time >= curdate() and time < (curdate() + interval 1 day)
        AND windspeed > 0
GROUP BY
        wind_direction
ORDER BY
        avg_speed DESC
LIMIT 1

关于mysql - 带有平均子查询的 SQL 查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5301644/

10-13 00:03