mysql - 具有平均子查询的 SQL 查询

标签 mysql sql

我正在对天气数据库进行 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

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

查询输出:

wind_direction   windspeed  
0               10.1  
0               11.2  
23              7.6  
23              1.4  

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

最佳答案

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/

相关文章:

android - 附近 "COLUMN_NAME": syntax error (code 1) in SQLite

sql - Microsoft SQL 'not like' 与 <>

python - 控制 django 中约束的名称

sql - 如何在 COUNT() 聚合中包含零?

mysql - 从两行中,返回包含数字/字符串字符的行

php - 如何检查更新是否完成

mysql - 从mysql数据库获取最小值和最大值之间的所有数字

PHP Codeigniter : set Port Number for MySQL Configuration

javascript - 我可以在 SQL 数据库中使用 Google Maps API 多边形形状吗

sql - 如何获得命名内部联接的非重复计数?