首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个日期的MYSQL查询计数

多个日期的MYSQL查询计数
EN

Stack Overflow用户
提问于 2015-09-15 08:34:37
回答 1查看 25关注 0票数 0

我有一个我们开发的工具,当人们走进房间时,它可以通过RFID扫描他们。

因此,我有一个任务设置的人员扫描数据表,如下

代码语言:javascript
复制
ID | User | Created_At 
Int| Int  | Datetime
10 | 223  | 2015-09-07 00:00:00 
etc...

我想要一个查询来查看每个用户拥有的扫描通行证的唯一日期的数量。

在理想的情况下,报告中应该只有3栏

人员ID和他们已扫描的不同天数,以及他们扫描的总次数。

总扫描很简单,但我被不同的天数难住了。

EN

回答 1

Stack Overflow用户

发布于 2015-09-15 09:28:11

首先,您需要一个结果集来显示每个用户在数据库中出现的日期。

代码语言:javascript
复制
           SELECT DISTINCT DATE(Created_At) Scandate, User
             FROM Scan

然后你把它聚合起来。

代码语言:javascript
复制
   SELECT COUNT(*) Datecount, User
     FROM (
           SELECT DISTINCT DATE(Created_At) Scandate, User
             FROM Scan
          ) A
    GROUP BY User

这将为您提供每个用户出现的日期。

然后你需要计算出基本的计数。

代码语言:javascript
复制
   SELECT COUNT(*) Scancount, User
     FROM Scan
    GROUP BY User

最后,您需要在User上将这两个连接在一起,并对它们进行排序,以便它们有意义。

代码语言:javascript
复制
SELECT Q.User, R.Scancount, S.Datecount
  FROM (
        SELECT COUNT(*) Datecount, User
          FROM (
                  SELECT DISTINCT DATE(Created_At) Scandate, User
                    FROM Scan
               ) A
         GROUP BY User
       ) R
  JOIN (
         SELECT COUNT(*) Scancount, User
           FROM Scan
          GROUP BY User
       ) S ON R.User = S.User
 ORDER BY Q.User
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32575890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档