0

样本数据

   DATE      WindDirection

   1/1/2000  SW
   1/2/2000  SW
   1/3/2000  SW
   1/4/2000  NW
   1/5/2000  NW

下面的问题

每天都是unqiue,风向也不是唯一的,所以现在我们正在尝试获取最常见的风向的COUNT

select w.wind_direction as most_common_wd
from (
       select wind_direction, count(*) as cnt
       from weather 
       group by wind_direction 
       order by cnt desc
) w
limit 1;

目前这个查询有效,但是它输出所有计数的计数,我只对每种风向的计数感兴趣,它输出南并输出 170000 但答案只有 10,000。

我知道使用 count 的方式有问题,我认为它必须指定别名并按特定的 wind_direction 进行计数,但我无法将其转换为语法

4

1 回答 1

2

看起来您想要从数据中获取最常见的风向

select wind_direction, count(*) as cnt
from weather 
group by wind_direction 
order by cnt desc
limit 1;

如果有多个具有相同最大计数的风向,则获取最大计数并在have子句中使用它来获取最常见的风向

select wind_direction 
from weather 
group by wind_direction 
having count(*) = ( select max(c) from 
                    (
                       select wind_direction,count(*) c 
                       from weather 
                       group by wind_direction 
                    ) a
                  ) 
于 2016-04-21T17:03:49.500 回答