user | session
test1 | 11
test1 | 11
test1 | 11
test1 | 21
test1 | 21
test2 | 2
test2 | 2
test3 | 3
test3 | 3
test3 | 32
test3 | 32
我想取回user 1 has 2 sessions
,user 2 has 1 sessions
,user 3 has 2 sessions
用户有多少相同的会话?
我试过$sql4 = SELECT user, session , count(*) FROM
表group by user, session
我得到了不同的会话而不是计数
任何想法? 感谢
编辑:
如果我使用SELECT user, count(*) FROM users GROUP BY user
,我会test 1 = 5
。它给了我总数nr或者会话而不是相同的会话总数nr。在这种情况下2
答案 0 :(得分:3)
SELECT user, count(DISTINCT session) FROM users GROUP BY user
DISTINCT
用于仅计算唯一会话
答案 1 :(得分:1)
如果您想知道在线人数的总数,您只需计算用户数量,无论会话如何
$sql4 = SELECT COUNT(*) from (
SELECT distinct(user)
FROM table) as innerquery
这将按用户分组所有会话。 结果将是一个简单的整数。
如果您需要计算每个用户的会话数量而不想计算每个会话的数量,则需要使用Distinct关键字删除副本。
$sql4 = SELECT user, count(distinct(session))
FROM table
GROUP by user
结果将是用户>#of session
的列表