【发布时间】:2016-11-30 11:23:53
【问题描述】:
我有一个问题:
SELECT
count(session_id_open) as opens,
count(session_id_visit) as visits,
date_intervals_open,
group_concat(date_intervals_visit)
FROM
bla
GROUP BY date_intervals_open
我得到下表。我需要的是按百分比查找出现在 group_concat 中的每个值的出现次数。所以,基本上,我需要计算每组(data_intervals_open)中值的数量(date_intervals_visit)
opens visits date_intervals_open group_concat
213 5 day (12-16) evening (17-21),evening (17-21),day (12-16),day (12-16),day (12-16)
113 0 evening (17-21) NULL
11 0 late evening (22-00) NULL
396 12 morning (5-11) morning (5-11),morning (5-11),morning (5-11),morning (5-11),morning (5-11),morning (5-11),morning (5-11),morning (5-11),morning (5-11),morning (5-11),morning (5-11),morning (5-11)
9 0 night (1-4) NULL
这大约是我需要得到的表。在 First record night 中有 40 次,因为“晚上 (17-21)”出现了两次,所有出现的次数为 5。2/5*100=40
opens visits date_intervals_open evening(17-21) day(12-16) morning (5-11)
213 5 day (12-16) 40 60 0
113 0 evening (17-21) NULL NULL NULL
11 0 late evening (22-00) NULL NULL NULL
396 12 morning (5-11) 0 0 100
9 0 night (1-4) NULL
PS:我使用 group_concat 只是为了可视化我在那里的价值。我不必使用它,因为之后解析它需要额外的努力。
【问题讨论】:
-
请提供
SHOW CREATE TABLE bla和几行样本数据。就好像您在执行count(session_id_visit)时依赖于NULL。这看起来很奇怪。
标签: mysql group-by pivot-table