Sql 为什么它不能像处理绝对数“风速”那样处理平均值呢?

Sql 为什么它不能像处理绝对数“风速”那样处理平均值呢?,sql,Sql,我做了以下工作: select distinct year, month, day, wind_speed case when avg(wind_speed)>25 then 'HIGH' when avg(wind_speed) between 15 and 25 then 'MODERATE' else 'LOW' end as wind_severity from station_data order by avg(wind_speed) de

我做了以下工作:

select distinct year, month, day, wind_speed
    case
    when avg(wind_speed)>25 then 'HIGH'
    when avg(wind_speed) between 15 and 25 then 'MODERATE'
    else 'LOW'
    end as wind_severity
from station_data
order by avg(wind_speed) desc;
最后,它只显示了一行28000个可能的条目。如果我们每年只取一个平均值,它必须大约为10000!
谢谢

您有一个没有分组依据的聚合查询。使用分组方式:


请注意,大小写表达式是按顺序计算的,因此中间的表达式不需要介于两者之间。

我删除了不一致的数据库标记。请仅使用实际使用的数据库进行标记。如果使用DISTINCT with AGGRATE函数,则这通常是GROUP BY子句错误的良好指示。
select year, month, day,
       (case when avg(wind_speed) > 25 then 'HIGH'
             when avg(wind_speed) >= 15 then 'MODERATE'
             else 'LOW'
        end) as wind_severity
from station_data
group by year, month, day
order by avg(wind_speed) desc;