Php 为什么我的MySQL Group By Hours和Half Hours文件不显示相同的数据?

Php 为什么我的MySQL Group By Hours和Half Hours文件不显示相同的数据?,php,mysql,time,date,Php,Mysql,Time,Date,我需要能够在不同的显示类型中以15分钟的增量显示数据。我有两个问题给我带来了麻烦。一个按半小时显示数据,另一个按小时显示数据。唯一的问题是,查询之间的数据总数会发生变化。它不计算在时间范围内发生的数据,只计算在时间范围内发生的数据 例: 早上7点15分发生了5件事。2个发生在早上7:30,4个显示在早上7:00 15分钟视图显示所有数据。 半小时视图显示7:00am和7:30am的数据,但忽略7:15am的数据。 小时显示仅显示上午7:00的数据 以下是我的疑问: $query="SELECT

我需要能够在不同的显示类型中以15分钟的增量显示数据。我有两个问题给我带来了麻烦。一个按半小时显示数据,另一个按小时显示数据。唯一的问题是,查询之间的数据总数会发生变化。它不计算在时间范围内发生的数据,只计算在时间范围内发生的数据

例: 早上7点15分发生了5件事。2个发生在早上7:30,4个显示在早上7:00

15分钟视图显示所有数据。 半小时视图显示7:00am和7:30am的数据,但忽略7:15am的数据。 小时显示仅显示上午7:00的数据

以下是我的疑问:

$query="SELECT * FROM data WHERE startDate='$startDate' and queue='$queue' GROUP BY HOUR(start),floor(minute(start)/30)";

我怎样才能像以前那样分组取出数据,但却能得到所有包含的数据


问题是数据在mysql表中的存储方式吗?目前,我有一个日期为2010-03-29的列和一个时间为00:00的列。我是否需要将它们转换为其他内容?

分组依据错误,您在查询中不使用任何聚合函数。删除GROUP BY,数据库现在必须猜测应该选择哪些记录。数据库不应该猜测,他们必须得到正确的答案,而且只有正确的答案


更改并创建正确的查询。

分组依据错误,您在查询中未使用任何聚合函数。删除GROUP BY,数据库现在必须猜测应该选择哪些记录。数据库不应该猜测,他们必须得到正确的答案,而且只有正确的答案


更改并创建正确的查询。

您对“分组依据”的解释错误。您不需要将多个记录分组,这样就可以通过一个fetchrow调用获取所有记录。发生的情况是,数据库将把与GROUPBY子句匹配的所有记录折叠为一个记录。以一个简单的游戏分数表为例:

id   playername  score
----------------------
1    John        23
2    Fred        12
3    Jack        9
4    John        18
如果执行以下查询:按playername选择id、playername、score FROM table GROUP,则会得到以下结果集:

id   playername  score
----------------------
1    John        23
2    Fred        12
3    Jack        9
嘿!约翰4去了哪里?他消失了,因为id4的行与GROUP BY子句匹配,并已折叠为与1匹配的第一行。它本身不是很有用,您现在已经丢失了与ID4相关的所有数据。但这是聚合函数求和、计数、平均值等的地方。。。进场:按玩家名称从表组中选择id、玩家名称、SUMscore:

通过查询,您有两种选择:

按原样保留分组,并在查询中对分组数据执行任何计算求和、计数、平均等。。。因此,您可以获得每个匹配时间段的聚合结果 删除GROUPBY子句,在应用程序中执行所需的任何计算 将GROUP BY子句转换为查询中的结果字段,这样您就可以根据以下新列在代码中按时段进行处理:SELECT*、HOURstart、FLOWORMINUTESTART/30 FROM data
你对“分组方式”的理解是错误的。您不需要将多个记录分组,这样就可以通过一个fetchrow调用获取所有记录。发生的情况是,数据库将把与GROUPBY子句匹配的所有记录折叠为一个记录。以一个简单的游戏分数表为例:

id   playername  score
----------------------
1    John        23
2    Fred        12
3    Jack        9
4    John        18
如果执行以下查询:按playername选择id、playername、score FROM table GROUP,则会得到以下结果集:

id   playername  score
----------------------
1    John        23
2    Fred        12
3    Jack        9
嘿!约翰4去了哪里?他消失了,因为id4的行与GROUP BY子句匹配,并已折叠为与1匹配的第一行。它本身不是很有用,您现在已经丢失了与ID4相关的所有数据。但这是聚合函数求和、计数、平均值等的地方。。。进场:按玩家名称从表组中选择id、玩家名称、SUMscore:

通过查询,您有两种选择:

按原样保留分组,并在查询中对分组数据执行任何计算求和、计数、平均等。。。因此,您可以获得每个匹配时间段的聚合结果 删除GROUPBY子句,在应用程序中执行所需的任何计算 将GROUP BY子句转换为查询中的结果字段,这样您就可以根据以下新列在代码中按时段进行处理:SELECT*、HOURstart、FLOWORMINUTESTART/30 FROM data
你是说我的解决方案错了?我接近我想要的,但不完全是。你能告诉我应该如何查询我的数据库,以半小时和小时为增量对记录进行分组吗?所以你说我的解决方案是错误的?我接近我想要的,但不完全是。你能告诉我应该如何查询我的数据库,以半小时和小时为增量对记录进行分组吗?选择一。谢谢你的帮助。更有意义的是,我觉得自己很笨,但当它完全按照我所希望的方式工作时,这种笨的感觉就消失了。谢谢
这么多!选择一。谢谢你的帮助。更有意义的是,我觉得自己很笨,但当它完全按照我所希望的方式工作时,这种笨的感觉就消失了。非常感谢!