对不起标题,我不知道该怎么称呼它。我正在寻找可以带我离开我的SQL(首选)或熊猫。我正在尝试找到如何让用户在某一天执行某项操作,但也包含一些有关他们的信息
在我的用户表中,我有:
userid, country, ...
1, a
2, b
3, a
4, a
我还有一个跟踪用户事件的事件表
userid, date, event
1, 1/1/15 login
2, 1/1/15 login
3, 1/1/15 view
1, 1/1/15 view
我希望能够返回一个表格,该表格包含当天登录的不同用户,并包含国家/地区或获取按国家/地区每天登录的用户数量。
我做了:
select date(events.date), events.userid, users.language
from events
join users
on
users.userid = events.userid
where events.date > '2015-01-15' and events.date < '2015-01-17'
AND events.event LIKE %%%%LOGIN%%%%'
但这当然不会给我不同的用户
2015-01-15 1 a
2015-01-15 1 a
2015-01-15 1 a
...
答案 0 :(得分:0)
我为您在SQLFiddler中创建了一个小型演示。
如果您需要日期范围内的用户和国家/地区,则可以使用以下查询:
-- USERs and Country by Date
select date(events.date),
events.userid,
users.country
from events
join users
on users.userid = events.userid
where events.date >= '2015-01-01' and events.date < '2015-01-02'
and events.event LIKE '%login%'
group by date(events.date),
events.userid,
users.country
如果您需要计算登录日期范围的每个国家/地区的用户数,您可以使用以下内容:
-- Country and Number of Users by Date
select date(events.date),
users.country,
count(distinct events.userid) number_of_users
from events
join users
on users.userid = events.userid
where events.date >= '2015-01-01' and events.date < '2015-01-02'
and events.event LIKE '%login%'
group by date(events.date),
users.country