group by报错?


确保在使用GROUP BY时,所有SELECT中提到的非聚合列(即没有使用聚合函数的列)都包含在GROUP BY子句中

举个例子:在以下sql中仅单独使用group by id会报错,因为非聚合列name未包含在group by子句中

with
    t as (
        select
            u.id as id,
            u.name as name,
            sum(if(gi.type = 'add', +gi.grade_num, -gi.grade_num)) as grade_num
        from
            user as u,
            grade_info as gi
        where u.id=gi.user_id
        group by 1,2
    )
select
    *
from
    t
where
    grade_num=(select max(grade_num) from t)
order by
    id;
posted @ 2024-12-13 16:41  kiss_sheep  阅读(42)  评论(0)    收藏  举报