Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql中的单个列上循环_Mysql - Fatal编程技术网

在mysql中的单个列上循环

在mysql中的单个列上循环,mysql,Mysql,我有一个表,看起来像这样,我想知道在六个小时的时间段内注册的条目数,并显示最大条目数的时间段 Time 09:42:29 10:37:28 15:18:49 15:28:34 16:43:51 18:14:10 18:26:06 18:26:14 因此,对于时间列中的每个元素,我将包括从该元素开始的6个小时的时间段,并计算该列中有多少条目将落在该时间段中。 Ex 09:42:29将具有结束时段15:42:29,并且它应计为4(09:42:29,10:37:28 15:18:49,15:28:3

我有一个表,看起来像这样,我想知道在六个小时的时间段内注册的条目数,并显示最大条目数的时间段

Time
09:42:29
10:37:28
15:18:49
15:28:34
16:43:51
18:14:10
18:26:06
18:26:14
因此,对于时间列中的每个元素,我将包括从该元素开始的6个小时的时间段,并计算该列中有多少条目将落在该时间段中。 Ex 09:42:29将具有结束时段15:42:29,并且它应计为4(09:42:29,10:37:28 15:18:49,15:28:34)

因此,对时间列中的每个元素以及具有最大计数的元素执行此操作,这将是时段的开始时间,并相应地显示开始和结束时段

请帮助我为此编写一个mysql查询。谢谢你

希望有帮助

select
    T.TimeStart,
    T.TimeEnd,
    COUNT(*)
from (
    select
        T.Time TimeStart,
        date_add(T.Time,INTERVAL 6 HOUR) TimeEnd
    from TimeTable T
) T
inner join TimeTable T2 on
    T2.Time between T.TimeStart and T.TimeEnd
group by
    T.TimeStart,
    T.TimeEnd

下面的代码是针对MSSQL的,但它的工作原理与预期一致,应该为您提供一些如何使用上述示例的指导

WITH TimeTable([Time]) AS (
select
CONVERT(DATETIME,a.a)
from (
values
('09:42:29'),
('10:37:28'),
('15:18:49'),
('15:28:34'),
('16:43:51'),
('18:14:10'),
('18:26:06'),
('18:26:14'))a(a)
)
select
    convert(time(7),T.TimeStart)TimeStart,
    convert(time(7),T.TimeEnd)TimeEnd,
    COUNT(*) [Ocorrences]
from (
    select
        T.Time TimeStart,
        DATEADD(HOUR,6,T.Time) TimeEnd
    from TimeTable T
) T
inner join TimeTable T2 on
    T2.Time between T.TimeStart and T.TimeEnd
group by
    T.TimeStart,
    T.TimeEnd

@Wittyengs是我编辑的回答您的要求的结果吗?@mxix…谢谢您的回答…但是这些值可能不是数据库中的值…那么在这种情况下,无法使用预定义值…用什么替代它。