用于分组值 0-9、10.20 的多个 case 语句
Posted
技术标签:
【中文标题】用于分组值 0-9、10.20 的多个 case 语句【英文标题】:Multiple case statement for grouping values 0-9, 10.20 【发布时间】:2017-06-22 08:29:16 【问题描述】:我有下面的第一个 case 语句,我需要与下面的 case 语句合并,以便像这样将值分组在一起:
days range | Activity_submit
-------------------------------------
0-9 | 11
10-19 | 14
20-29 | 3
SELECT
events_raw.properties ->> 'days_before_stay' AS "Days_before_stay",
COUNT(CASE WHEN ((events_raw.properties ->> 'event_type') LIKE
'fs_mystay_activity_submit') THEN 1 ELSE NULL END) AS "Request Count"
FROM events_raw
要与第一个合并的第二个 case 语句
select events_raw.properties ->> 'days_before_stay' AS "Days_before_stay" [days range], count(*) as [number of occurences]
from (
select case
when days between 0 and 9 then ' 0- 9'
when days between 10 and 19 then '10-19'
else '20-99' end as range
from events_raw)
group by 1
【问题讨论】:
mysql postgresql,请不要标记未使用的产品。这是一个案例 expression 而不是 statement 【参考方案1】:我没有看到您的表结构,但这里是您可以按表达式查看分组的示例。
SELECT
(id/10)*10 toOrder, -- addition field to sort by
(id/10)*10 || ' - ' || ((id)/10+1)*10 AS range,
count(*) myCount
FROM report
GROUP BY
(id/10)*10,
(id/10)*10 || ' - ' || ((id)/10+1)*10, -- group by expression
ORDER BY toOrder;
如果是 id,您可以使用任何整数字段。
【讨论】:
以上是关于用于分组值 0-9、10.20 的多个 case 语句的主要内容,如果未能解决你的问题,请参考以下文章