mysql,php,如何获取用户数?

时间:2011-08-01 19:56:00

标签: php mysql

我有一张这样的桌子:

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 sessionsuser 2 has 1 sessionsuser 3 has 2 sessions 用户有多少相同的会话?

我试过$sql4 = SELECT user, session , count(*) FROMgroup by user, session

我得到了不同的会话而不是计数

任何想法? 感谢

编辑:

如果我使用SELECT user, count(*) FROM users GROUP BY user,我会test 1 = 5。它给了我总数nr或者会话而不是相同的会话总数nr。在这种情况下2

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

的列表