Sql Group by和order by一起导致错误
我有一个sql查询,其中我使用GROUPBY和ORDERBY,但它给出的错误不是GROUPBY表达式Sql Group by和order by一起导致错误,sql,Sql,我有一个sql查询,其中我使用GROUPBY和ORDERBY,但它给出的错误不是GROUPBY表达式 select co.id , count(col.course_fk) from student co inner join course col on col.course_fk = co."ID" where (co.phone=:param) group by co.id ORDER BY co.create_date_time asc; 若我删除orderBy,
select co.id , count(col.course_fk) from student co inner join
course col on col.course_fk = co."ID" where (co.phone=:param)
group by co.id ORDER BY co.create_date_time asc;
若我删除orderBy,那个么它运行良好并给出结果。我应该如何更改我的查询,以便可以同时使用order by和group by。选择时,
中没有order by
列。因此,使用聚合列。我可能猜:
select co.id, count(col.course_fk)
from student co inner join
course col
on col.course_fk = co.ID
where co.phone = :param
group by co.id
order by min(co.create_date_time) asc;
或将列包括在分组依据中
:
select co.id, count(col.course_fk)
from student co inner join
course col
on col.course_fk = co.ID
where co.phone = :param
group by co.id, co.create_date_time
order by co.create_date_time asc;
注意:如果将course.id
定义为主键,则原始版本不会在MySQL中产生问题。。我删除了不一致的数据库标记。请仅使用您真正使用的数据库进行标记。