当前位置: 首页 > 面试题库 >

如何在MySQL的无行日中每天对行数进行分组?

秦光启
2023-03-14
问题内容

所以我有这张桌子。它有几百行。每行中都有一个日期时间字段。我需要完成的是获取给定时间段内有多少行,而不是整个时间段,而是该时间段的每一天。到此为止,我知道该怎么办。但是,此外,我还需要在表中没有值0的日期的行。

因此,例如:

2012-01-01 12:13
2012-01-01 43:32
2012-01-03 23:32

应该给我这样的结果:

2012-01-01 2
2012-01-02 0
2012-01-03 1

任何人都可以帮忙吗?


问题答案:

为了处理带有0条对应记录的日期,我的常规做法是使用日历表进行联接。

例如,创建一个表,其中一个字段称为,calendar_date并在其中填充从1st Jan 2000到的每个日期31st Dec 2070,或其他适合您报表目的的范围。

然后使用类似…

SELECT
  calendar.calendar_date,
  COUNT(*)
FROM
  calendar
LEFT JOIN
  yourData
    ON  yourData.timeStamp >= calendar.calendar_date
    AND yourData.timeStamp <  calendar.calendar_date + 1
WHERE
      calendar.calendar_date >= '01 Jan 2012'
  AND calendar.calendar_date <  '04 Jan 2012'
GROUP BY
  calendar.calendar_date

该表可以有许多其他用途,例如标记银行假期,几周和几个月的开始。通过谨慎使用标志和索引,您可以从中获得很多收益。



 类似资料:
  • 这听起来有点令人困惑,我不知道如何用语言表达,但我很难找到这个问题的解决方案。 我想按行“分组”,并使用数字相同的“digit”列在表中对行进行计数,而不管数字的位置如何。 例子: 这是桌子 答案是:使用count() 其他详细信息: 数字列为数字 mysql版本是来自cpanel的82。

  • 最近我尝试使用ApacheFlink进行快速批处理。我有一个表,它有一个列:value和一个不相关的索引列 基本上我想计算每5行值的平均值和范围。然后我将根据我刚才计算的平均值计算平均值和标准偏差。所以我想最好的方法是使用窗口。 看起来是这样的 但是我不知道用。我试过,但它说没有这样的输入。我只希望它在从源代码读取时按顺序分组。但是它必须是一个时间属性,所以我不能使用索引列作为排序。 我是否必须添

  • 问题内容: 我如何返回在MySQL中实际上是“连续的” GROUP BY。换句话说,GROUP BY是否尊重记录集的顺序? 例如,从下表中,col1是唯一的有序索引: 返回: 但我需要返回以下内容: 问题答案: 采用: 这里的关键是创建一个允许分组的人为值。 以前,更正了Guffa的答案:

  • 问题内容: 我有一个监视系统,它每n秒收集一次数据(n大约为10,但有所不同)。我想每隔15分钟汇总一次收集的数据。有没有一种方法可以将时间戳记值合并为15分钟的块,以便分组工作? 问题答案:

  • 问题内容: 所以,我有一张表,上面有这样的行: 每次扫描警报时(即每次触发或清除警报时)都会添加“已扫描的警报”行。任何警报都会添加带有特定Ev_Custom1的行。第一列Ev_Message包含一个计算机ID,该ID使我可以将警报与其他计算机分开。(您不喜欢任意的列名吗?)超过900条独特的警报消息。 我希望查询返回的内容是这样的: 这将是两个日期之间过滤的查询。我可以更改进入表的数据,但是有9

  • 本文向大家介绍如何在JavaScript中对JSON数据进行分组?,包括了如何在JavaScript中对JSON数据进行分组?的使用技巧和注意事项,需要的朋友参考一下 要对JSON数据进行分组,您需要提取所有键并使用。以下是代码- 示例 要运行上述程序,您需要使用以下命令- 输出结果 在这里,我的文件名为demo122.js。这将产生以下输出-