如何 Return 某天执行某项操作的用户以及位置 SQL

How to Return Users on a Certain Day Who Performed an Action Along with Location SQL

对不起这个标题,我不知道该怎么称呼它。我正在寻找 SQL(首选)或 Pandas 可以带我离开我所在的地方。我正在尝试找到如何获取在某一天执行给定操作的用户,同时还包括一些关于他们的信息

在我的用户 table 我有:

userid, country, ...
1,      a
2,      b
3,      a
4,      a

我还有一个跟踪用户事件的事件table

userid,    date,    event
1,         1/1/15   login
2,         1/1/15   login
3,         1/1/15   view
1,         1/1/15   view

我希望能够 return table 包含当天登录的不同用户并包含国家/地区,或者计算每天登录的用户数量国家。

我完成了:

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

...

我在 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