Гистограмма SQL: более 10 заказов группируются как "10+ сегментов" - PullRequest
2 голосов
/ 23 марта 2019

Вопрос: создайте SQL-запрос, чтобы предоставить гистограмму количества х человек, которые сделали у количество заказов. Любой, у кого более 10 заказов, должен быть сгруппирован в группу «10+»

Шаг 1 : Я создал 'temptable' как это:

Customerid    Order_Count
----------    -----------
CENTC         1
GROSR         2
LAZYK         2
LAUGB         3
NORTS         3
FRANR         3

Шаг 2: Я попробовал функцию floor для создания сегментов гистограммы, но не могу попасть в интервал 10 +, используя следующий синтаксис

select bucket, count(*) from
(select floor(order_count/10.00)*10 as bucket from TempTable
) t group by bucket

Пожалуйста, предложите другие подходящие подходы. Спасибо!

1 Ответ

2 голосов
/ 23 марта 2019

Вы бы сделали case выражений, чтобы определить сегменты, а затем агрегировать для итоговой сводки:

select (case when order_count >= 10 then '10+' else CustomerId
        end) as CustomerId,
       sum(Order_Count) as Order_Count
from temptable
group by (case when order_count >= 10 then '10+' else CustomerId
          end);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...