简体   繁体   English

如何计算 mysql 中特定 DateTime 范围之间的数据出现次数

[英]how to count data occurrence between certain DateTime range in mysql

I am sorry for this kind of newbie question, but it is quite hard for me.对于这种新手问题,我很抱歉,但这对我来说很难。 My MySQL table holds high-frequency stock prices.我的MySQL表包含高频股票价格。 On each trading date, data starts from day 1 18:00 to day 2 17:00 .在每个交易日,数据从第 1 天18:00开始到第 2 天17:00 I want to count the data occurrence for each trading day between the above trading hour.我想统计上述交易时段之间每个交易日的数据出现次数。 I know how to count for a single day just as following code我知道如何像下面的代码一样计算一天

SELECT COUNT(*) FROM table WHERE date BETWEEN '2021-08-25 18:00:00' AND '2021-08-26 17:00:00' 

But how to count all the days in the table?但是如何统计表中的所有天数呢?

My table looks like this:我的桌子看起来像这样: 在此处输入图像描述

What I want to looks like this:我想要的是这样的: 在此处输入图像描述

Thanks in advance.提前致谢。

Appreciate that your "day" starts at 6pm.感谢您的“一天”从下午 6 点开始。 So, we can normalize each datetime by subtracting 18 hours, and then aggregate:因此,我们可以通过减去 18 小时来规范化每个日期时间,然后聚合:

SELECT DATE(date - INTERVAL 18 HOUR), COUNT(*) AS cnt
FROM yourTable
GROUP BY 1;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM