Use below
select `desc`, count(distinct user_id) distinct_user_id
from (
select category as `desc`, user_id from your_table
union all
select segment, user_id from your_table,
unnest(split(segment, ';')) segment
)
where `desc` != ''
group by `desc`
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.