Sql 选择按最大在线订购日期在线记录

Sql 选择按最大在线订购日期在线记录,sql,Sql,需要有关sql的帮助: 我需要按天对每天的最大在线进行分组 () 我的sql选择: SELECT id, date, MAX(online) FROM `record_online_1` GROUP BY DAY(date) 结果—— 这是不正确的结果,因为,max-online是正确的,但此顶级在线的date和id是不正确的。我不知道如何解决这个问题 UPD:在执行聚合函数时,必须在SELECT语句中包含GROUP BY子句中不属于聚合函数的项。在T-SQL中,如果不按“id”分组,则无

需要有关
sql
的帮助:

我需要按天对每天的
最大在线
进行分组
()

我的sql选择:

SELECT id, date, MAX(online) 
FROM `record_online_1` 
GROUP BY DAY(date)
结果——

这是不正确的结果,因为,
max-online
是正确的,但此顶级在线的
date
id
是不正确的。我不知道如何解决这个问题


UPD:在执行聚合函数时,必须在SELECT语句中包含GROUP BY子句中不属于聚合函数的项。在T-SQL中,如果不按“id”分组,则无法执行上述查询。然而,有些数据库系统允许您放弃这一规则,但它不够聪明,无法知道应该将哪个ID带回给您。例如,仅当该段的所有“ID”相同时,才应执行此操作

那你该怎么办?分两步进行。第一步,找到最大值。您将丢失ID和日期时间数据

SELECT DAY(date) AS Date, MAX(online) AS MaxOnline
FROM `record_online_1` GROUP BY DAY(date)
以上内容将为您提供一个日期列表,其中包含每天的最大日期。内部将其连接到原始的“record_online_1”表,专门在日期和最大值上连接。您可以使用CTE、临时表、子查询等来执行此操作


您确定这是使用group by的正确方法吗?只是我从来没有这样使用过。您使用的是什么RDBMS?我假设一个不会强迫您将SELECT语句中的所有内容都包含在GROUP BY或聚合函数中。请尝试将
id
也包含在
GROUP BY
子句中。谢谢,我将尝试这样做。