【问题标题】:MYSQL Query: group by entries per date and count entriesMYSQL 查询:按日期和计数条目分组
【发布时间】:2017-01-04 15:13:31
【问题描述】:

我有两列,一个时间戳和一个数字,哪个卡已被选中。

card      added
1         2016-09-23 13:48:48
3         2016-09-23 13:48:48
1         2016-09-23 13:48:48
2         2016-09-24 13:48:48
1         2016-09-24 13:48:48
2         2016-09-24 13:48:48
3         2016-09-24 13:48:48

我需要输出的是每张卡片的计数,按条目分组,如下所示:

card      count     added
1         2         2016-09-23
3         1         2016-09-23
1         1         2016-09-24
2         2         2016-09-24
3         1         2016-09-24

所以我想我必须计算添加的卡是相同的。但我不知道怎么做,而且我需要按添加的卡片对它进行分组。

【问题讨论】:

    标签: mysql sql select count


    【解决方案1】:

    您需要按卡片和截断日期对结果进行分组。可以通过调用date()来完成截断:

    SELECT   card, DATE(added) AS added, COUNT(*)
    FROM     mytable
    GROUP BY card, DATE(added)
    

    【讨论】:

    • 这比我想象的要容易得多。非常感谢你。不知道我可以按两列分组
    【解决方案2】:

    您只需GROUP BY卡片和日期:

    SELECT card, COUNT(*), CAST(added AS date) added
    FROM your_table
    GROUP BY card, CAST(added AS date)
    

    【讨论】:

      【解决方案3】:
      SELECT card, COUNT(card) AS CNT, added
      FROM `example_table`
      GROUP BY card, added
      ORDER BY added ASC, card ASC
      

      【讨论】:

      • 通常最好对代码的作用进行解释。这使新开发人员能够了解代码的工作原理。
      • 是的,很抱歉。我的错。 I wrote a salutation before the query but when selected the code formatter it disappeared, then I saw so many answers were published while I was writing mine and assumed it was already solved.
      猜你喜欢
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2013-08-14
      • 2020-08-30
      • 1970-01-01
      • 2015-05-11
      • 2014-11-06
      • 1970-01-01
      相关资源
      最近更新 更多