У меня есть эта таблица (это раздел), которую я использую в качестве CTE для второй части запроса, включающей агрегаты и функции cube (). Во второй части запроса у меня есть условие case для счетчика event_id, где bsp находится между скобками диапазона.
╔═══════════╦════════╗
║ EVENT_ID ║ BSP ║
╠═══════════╬════════╣
║ 146305074 ║ 3.61 ║
╠═══════════╬════════╣
║ 146305074 ║ 3.65 ║
╠═══════════╬════════╣
║ 146305074 ║ 4.00 ║
╠═══════════╬════════╣
║ 146305074 ║ 11.86 ║
╠═══════════╬════════╣
║ 146305074 ║ 20.79 ║
╠═══════════╬════════╣
║ 146305074 ║ 24.85 ║
╠═══════════╬════════╣
║ 146305074 ║ 35.83 ║
╠═══════════╬════════╣
║ 146305074 ║ 155.41 ║
╚═══════════╩════════╝
Во второй части запроса у меня есть условие case для count event_id, где bsp равно между некоторыми скобками диапазонов.
CASE
WHEN td.BSP <= 2 THEN '01-02'
WHEN td.BSP <= 3 THEN '02-03'
WHEN td.BSP <= 5 THEN '03-05'
WHEN td.BSP <= 8 THEN '05-08'
WHEN td.BSP <= 13 THEN '08-13'
WHEN td.BSP <= 21 THEN '13-21'
WHEN td.BSP <= 34 THEN '21-34'
WHEN td.BSP <= 55 THEN '34-55'
WHEN td.BSP <= 89 THEN '55-89'
WHEN td.BSP <= 1000 THEN '89-1000'
END
выше - диапазоны, в которых я должен сгруппировать BSP для каждого event_id, но я должен показать количество раз, когда это происходит, и классифицировать в соответствии с этим. например, с этими данными мой ожидаемый результат будет
a count of 3 for BSP <=5
a count of 1 for BSP <=13
a count of 1 for BSP <=21
a count of 1 for BSP <=34
a count of 1 for BSP <=1000
, но во второй части я хочу иметь случай, в котором я могу выбрать по этому количеству event_id и дать им значение на основе этого:
CASE
WHEN "count of event id" = 1 THEN '01'
WHEN"count of event id" in (2,3) THEN '02-03'
WHEN "count of event id" >3 THEN '04-1000'
END
AS label
полная информация о запросах и тестовых данных находится в Fiddle , и просто для ясности в отношении этой конкретной ошибки, что должно произойти, это то, что столбец «Метка скобки» не должен • поместить все значения в скобку «04-1000» в соответствии с выбором в блоке «Price Bracket Count». но должен показывать количество раз, когда идентификатор события находился в скобке BSP.