如何获得每小时范围内的交易次数

Posted

技术标签:

【中文标题】如何获得每小时范围内的交易次数【英文标题】:how to get no of transactions on an hourly range 【发布时间】:2015-03-24 14:49:47 【问题描述】:

表有列 Receiptno: 和 [TransDate] 和 Transtime。 eg:下面的数据

0080052594  2012-10-28  1899-12-30 19:01:38.000
0080052595  2012-10-28  1899-12-30 19:05:09.000
0080052596  2012-10-28  1899-12-30 19:05:15.000

我需要查询以获取每小时间隔和以下格式的交易数量

Hour Inetrval          No: Trans
09:01-10:00             10
10:01-11:00             16

【问题讨论】:

你尝试了什么?你遇到了什么错误? 【参考方案1】:

您使用的是哪个 DBMS?您的字段是什么具体的数据类型?

在 Access 中,您可以使用总计查询(SQL 中的 GROUP BY),您可以使用附加字段(或分层查询)来执行此操作。您还可以使用内联代码字符串比较。这适用于交易日期和时间的字符串或 DateTime 字段。

例如,表 1:

RECEIPTNO   TRANSDATE   TRANSTIME
1   1/12/2015   4:32:00 PM
2   1/12/2015   4:45:00 PM
3   1/12/2015   4:52:00 PM
4   1/12/2015   3:57:00 PM
5   1/12/2015   4:07:00 PM
6   1/12/2015   4:09:00 PM
7   1/12/2015   6:15:00 PM
8   1/12/2015   12:34:00 PM
9   1/12/2015   2:45:00 PM
10  1/12/2015   3:15:00 PM
11  1/12/2015   3:17:00 PM
12  1/12/2015   3:49:00 PM
13  1/12/2015   3:47:00 PM
14  1/12/2015   2:52:00 PM
15  1/12/2015   2:36:00 PM
16  1/12/2015   2:17:00 PM
17  1/12/2015   2:25:00 PM
18  1/12/2015   4:12:00 PM

QUERY1 按小时计算为字符串:

SELECT Count(TABLE1.RECEIPTNO) AS CountOfRECEIPTNO, TABLE1.TRANSDATE, Left([TRANSTIME],InStr([TRANSTIME],":")-1) AS [HOUR]
FROM TABLE1
GROUP BY TABLE1.TRANSDATE, Left([TRANSTIME],InStr([TRANSTIME],":")-1)
ORDER BY Left([TRANSTIME],InStr([TRANSTIME],":")-1);

结果:

CountOfRECEIPTNO    TRANSDATE   HOUR
1   1/12/2015   12
5   1/12/2015   2
5   1/12/2015   3
6   1/12/2015   4
1   1/12/2015   6

【讨论】:

以上是关于如何获得每小时范围内的交易次数的主要内容,如果未能解决你的问题,请参考以下文章

Mongo,在历史收藏中每小时只挑选第一笔交易

从余额交易中获得条纹支付

计算特定用户在过去 1 小时内的交易数量

获得每小时平均值

我应该为 Bep20 代币设置每笔交易/24 小时的最大卖出限额吗?

创建条带摘要报告