我正在进行一项查询(并且没有多少经验),这几乎可以满足我的需要。
我有一个表,其中包含每个设备每个用户的登录(表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
我做错了什么?
答案 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