我有一个表,学生,有以下栏目:分组:如果我不想在列上执行聚合函数,该怎么办?
________________________________________________
| id | name | class | date_registrered |
------------------------------------------------
我想选择一个行对每个唯一的类,只有排在date_registrered最大的价值, 即我要选择为每个班级提供最新的注册学生,包括该课程的所有数据。
我想:
SELECT id, name, class, MAX(date_registrered)
FROM Students
GROUP BY class;
我得到以下错误:
Column 'Students.id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
This question on SO这不会忽略问题的简化版本。但是,该示例仅适用于2列。
我只想按类分组,我只想在date_registrered上执行一个聚合函数。我也想显示所有其他列与每个类的max date_registrered行。
你知道如何解决它吗?
如果两个学生每节课*还没有明确的意义登记在同一天,*最新的注册学生。至少不是在每个独特类中返回一行的情况下。 –
时间以毫秒为单位,所以它的罚款为 – hellogoodnight
在这种情况下,“date_registered”值得一个更深思熟虑的名字。 –