计算每个用户每台设备的登录次数

时间:2018-02-20 09:44:25

标签: mysql database

我正在进行一项查询(并且没有多少经验),这几乎可以满足我的需要。

我有一个表,其中包含每个设备每个用户的登录(表1)和一个包含我想要结果的用户集的表(表2)。我想计算表2中用户x登录到表1中设备的次数。

Table 1 (data):
username
device_id
logon_date

Table 2 (users): 
username

我的查询如下:

SELECT data.device_id
     , COUNT(data.username)
     , data.username 
  FROM data
     , users 
 WHERE data.username = users.username 
 GROUP 
    BY data.device_id

但这仅列出每个设备一次。我知道有些用户登录了同一台设备。所以我希望不止一次提到该设备。

device user login count
PC1 - user1 - 12
PC2 - user2 - 20
etc

如果我写出我的查询,它将是这样的:对于表2中的每个用户,计算表1中的每个登录并计算每个设备的登录次数。

所以看起来应该是这样的:

device user login count
PC1 - user1 - 12
PC1 - user2 - 60
PC2 - user1 - 5
PC2 - user2 - 20
PC2 - user3 - 14
etc

我做错了什么?

1 个答案:

答案 0 :(得分:0)

  

"我希望不止一次提到该设备。"。

A" group by"在device_id字段上专门设置它,以便每个设备的行被分组到一行,然后您重新计算该设备在原始数据中出现的次数。

我想也许你想用device_id和用户名分组,例如:

SELECT data.device_id
     , data.username 
     , COUNT(data.username)
  FROM data
     , users 
 WHERE data.username = users.username 
 GROUP 
    BY data.device_id, data.username