SQL группировка по нескольким полям - PullRequest
0 голосов
/ 14 апреля 2020

Почему появляется эта ошибка?

"Код: 43, e.displayText () = DB :: Исключение: недопустимый тип (Enum8 ('' = 0, 'Manhattan' = 1, 'Bronx') = 2, 'Brooklyn' = 3, 'Queens' = 4, 'Staten Island' = 5)) из 2 аргументов функции и (версия 20.3.4.10 (официальная сборка)) "

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;

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Группировка по обычно не принимает логическое выражение. Я думаю, что вы хотите:

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
0 голосов
/ 14 апреля 2020

Это ошибка. Попробуйте последнюю стабильную версию 20.3.5.21

SELECT
    pickup_boroname AS region,
    toHour(pickup_datetime) AS time_,
    count(payment_type_) AS pay_count
FROM trips_mergetree
WHERE ((pickup_date >= '2011-01-01') AND (pickup_date <= '2011-12-31')) AND (pickup_boroname != 0)
GROUP BY
    time_,
    region
ORDER BY pay_count DESC

Ok.

0 rows in set. Elapsed: 0.002 sec.
...