首页 > 解决方案 > SQL 按几个字段分组

问题描述

为什么会出现这个错误?

“代码:43, e.displayText() = DB::Exception: 非法类型 (Enum8('' = 0, 'Manhattan' = 1, 'Bronx' = 2, 'Brooklyn' = 3, 'Queens' = 4, 'Staten Island' = 5)) 的 2 个函数参数和 (version 20.3.4.10 (official build))"

select pickup_boroname as region, toHour(pickup_datetime) as time_, count(payment_type_) as pay_count
from datasets.trips_mergetree
where pickup_date between '2011-01-01' and '2011-12-31' and
      pickup_boroname != 0
group by time_ and region
order by pay_count desc;

标签: mysqlsqldatabaseclickhouse

解决方案


Group by 通常不会采用布尔表达式。我想你想要:

select pickup_boroname as region, toHour(pickup_datetime) as time_, 
       count(payment_type_) as pay_count
from datasets.trips_mergetree
where pickup_date between '2011-01-01' and '2011-12-31' and
      pickup_boroname <> 0
group by time_, region
order by pay_count desc;

我将 替换为!=<>但也可能存在问题,具体取决于pickup_boroname. 您可能打算:

pickup_boroname is not null

推荐阅读