gpt4 book ai didi

mysql - 查询多天间隔表,按天分组计数?

转载 作者:行者123 更新时间:2023-11-30 23:11:01 25 4
gpt4 key购买 nike

想象一个像这样的 mysql 表:

Interval
--------------------------
id INT, NOT NULL
start DATETIME, NOT NULL
finish DATETIME, NOT NULL

我想要一个高效的查询,它可以生成一系列天数中午的间隔数。所以如果我有这样的数据:

id      start                 finish
-------------------------------------------------
1 2013-01-12 08:00:00 2013-01-17 02:00:00
2 2013-01-12 15:00:00 2013-01-13 18:00:00
3 2013-01-13 08:00:00 2013-01-13 09:00:00
4 2013-01-14 11:00:00 2013-01-15 08:00:00
5 2013-01-14 02:00:00 2013-01-17 01:00:00
6 2013-01-15 20:00:00 2013-01-16 08:00:00

我可以运行它并收到这样的结果集:

Timestamp             Count
-----------------------------
2013-01-12 12:00:00 1
2013-01-13 12:00:00 2
2013-01-14 12:00:00 3
2013-01-15 12:00:00 2
2013-01-16 12:00:00 2

我可以粗暴地查询最小开始时间和最大结束时间,然后执行以下操作:

SELECT count(id) FROM Interval 
WHERE start <= @noon_timestamp AND finish >= @noon_timestamp

对于范围内的每一天,但这看起来很丑陋和可怕。

有没有更好的方法?如果是这样,你能用 SqlAlchemy 的语法来做吗? :)

最佳答案

你可以使用BETWEEN:

SELECT COUNT(*)
FROM Interval
WHERE @noon_timestamp BETWEEN start AND finish

关于mysql - 查询多天间隔表,按天分组计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19718553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com