如何在某一天返回用户与位置SQL一起执行操作的人员

时间:2015-02-09 15:36:33

标签: python sql postgresql pandas

对不起标题,我不知道该怎么称呼它。我正在寻找可以带我离开我的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

...

1 个答案:

答案 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