gpt4 book ai didi

mysql - 如何在我的mysql中使用group_concat

转载 作者:行者123 更新时间:2023-11-29 18:04:39 25 4
gpt4 key购买 nike

我有这个查询:

    select  IF(user_name IS NULL or user_name= '', distinct_id, user_name ) 
as user_info, event, count(event) as event_count
from mixpanel
where
(mixpanel.event = 'app_open' or
mixpanel.event = 'post_created' or
mixpanel.event = 'create_comment' or
mixpanel.event = 'class_opened' or
mixpanel.event = 'post_read')
AND
class_id = 'AKSJSDKSD'

group by event, user_name, distinct_id
order by user_name desc

它给了我以下结果:

+-----------+------------+--------+ 
| user_info | event | event_count |
+-----------+------------+--------+
| Ben Cho | up | 12 |
| Lee Mar | up | 21 |
| Lee Mar | side | 12 |
| Lee Mar | down | 16 |
| Al Gov | up | 14 |
| Al Gov | down | 13 |
| Al Gov | side | 13 |
+-----------+------------+--------+

我需要的是像这样聚合每个用户数据:

+-----------+------------+--------+ 
| user_info | up | down | side
+-----------+------------+--------+
| Ben Cho | 12 | 0 | 0 |
| Lee Mar | 21 | 16 | 12 |
| Al Gov | 14 | 13 | 13 |
+-----------+------------+--------+

如何在 mySql 上实现此目的?

谢谢!

最佳答案

据我所知,您只需要条件聚合。不需要group_concat():

select (case when user_name IS NULL or user_name = '' then distinct_id else user_name
end) as user_info,
sum(mp.event = ('app_open')) as num_app_open,
sum(mp.event = ('post_created')) as num_post_created,
sum(mp.event = ('create_comment')) as num_create_comment
from mixpanel mp
where mp.event in ('app_open', 'post_created', 'create_comment') and
class_id = '-KtmM9EACwDTR98a_yU9'
group by user_info
order by user_info desc;

关于mysql - 如何在我的mysql中使用group_concat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47996347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com