计算sql中的重复日期

时间:2013-06-13 19:20:35

标签: sql count

所以我有一个表格,其中包含有关用户的以下数据以及他们访问网站的每一天:

|----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 | 

2 个答案:

答案 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