0

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

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

2 回答 2

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
于 2013-06-13T19:22:30.630 回答
0

您需要使用 COUNT 聚合函数来确定总计数,然后按 DATECOLUMN 和 USERNAME 对返回的记录进行分组:

select DATECOLUMN, USERNAME, count(1) 
    from TABLENAME group by DATECOLUMN, USERNAME
于 2013-06-13T19:23:13.287 回答