在system-sql表中查找一次性用户

时间:2014-02-20 14:12:04

标签: mysql sql

我有一个包含6列的表 - Date,time,action,user_id,channel和time_and_date。 当用户开始或结束观看电视频道时,动作是指打开或关闭。

我的任务如下 获得数据概述:

- find the one-time users (who used the service only once or in only one day and 
never came back) for each channel, each genre, each community

Anoother表提供user_id,流派(新闻,运动......)

如何找到满足这些要求的一次性用户?

3 个答案:

答案 0 :(得分:0)

听起来像这样:

select user_id, count(*)
from action_table
where action = 'open'
group by user_id
having count(*) = 1
order by user_id

答案 1 :(得分:0)

您可以尝试类似

的内容

SELECT FROM first_table LEFT JOIN users ON first_table.user_id=users.id GROUP BY users.id HAVING COUNT(users.id)=1

您可以在选择超过流派频道后加入您的流派表...

答案 2 :(得分:0)

获得一次性用户:

select user_id ,min(channel) as channel, min(genre) as genre, min(community) as community
from action_table
group by user_id
having min(date) = max(date);

请注意having子句。这可以保证用户只有一个日期(但不一定是一个记录)。

这为三个维度中的每个维度返回一个值 - 对于一次性用户,它们是相同的。对于在一天内多次访问的人,它会选择一个值。