请帮帮我
我是postgres数据库的新手

select
    case
        when daftar ='sd' then kouta
    end as a,
    case
        when daftar = 'smp' then kouta
    end as b,
    case
        when daftar = 'sma' then kouta
    end as c
from
    ajaran
GROUP BY
    tahun

和结果错误
[错误]错误:“ajaran.daftar”列必须出现在分组依据中
子句或用于聚合函数行1:select case when
daftar'sd'然后kouta结束作为一个案例,当。。。
我在MySQL中尝试相同的查询,没有错误和成功分组
如何在pgsql中使用group by?
我想按大顺分组
this my table

最佳答案

假设您希望sum()max()如下:

select tahun,
       max(case when daftar = 'sd' then kouta end) as a,
       max(case when daftar = 'smp' then kouta end) as b,
       max(case when daftar = 'sma' then kouta end) as c
from ajaran
group by tahun;

我认为错误很明显。. . daftarkouta既不是group by中的键,也不是查询中聚合函数中的键。如果没有进一步的指导,例如样本数据和期望的结果,哪种聚合最合适还不清楚。

10-08 03:56