所以我有一个表格,其中包含有关用户的以下数据以及他们访问网站的每一天:
|----DATE----|---User---|
|2012-01-01 | Joe |
|2012-01-01 | Jim |
|2012-01-01 | Joe |
|2012-01-01 | Bob |
|2012-01-01 | Joe |
|2012-01-02 | Jane |
|2012-01-03 | Joe |
我希望sql查询计算用户访问该网站的次数,并仅显示一次日期。它应该按日期组织,然后是用户名。因此,它看起来应该类似于:
|----DATE----|---U---|--Count--|
|2012-01-03 | Joe | 1 |
|2012-01-02 | Jane | 1 |
|2012-01-01 | Bob | 1 |
|2012-01-01 | Jim | 1 |
|2012-01-01 | Joe | 3 |
答案 0 :(得分:4)
你想要的是汇总数据,COUNT()会计算事件的数量,我们按用户和日期进行分组,以便为你提供你想要的东西:
SELECT DATE, User, COUNT(*)
FROM Table
GROUP BY DATE, User
ORDER BY DATE, User
您也可以通过以下方式订阅每天访问次数最多的人:
SELECT DATE, User, COUNT(*)
FROM Table
GROUP BY DATE, User
ORDER BY DATE, COUNT(*)DESC
答案 1 :(得分:0)
您需要使用COUNT聚合函数确定总计数,然后按DATECOLUMN和USERNAME对返回的记录进行分组:
select DATECOLUMN, USERNAME, count(1)
from TABLENAME group by DATECOLUMN, USERNAME