Wie zu beheben Fehler "Aggregatfunktionen sind nicht erlaubt, in DENEN"
Wie fi dieser Fehler
Err] FEHLER: Aggregatfunktionen sind nicht erlaubt in WO
diese meine Anfrage
select count(case daftar.daftar when 'sd' then 1 else null end) as sd,
count(case daftar.daftar when 'smp' then 1 else null end) as smp,
count(case daftar.daftar when 'sma' then 1 else null end) as sma
from daftar
join gelombang on daftar.gel=gelombang.id
join ajaran on ajaran.id=gelombang.id_ajar
join tahun on tahun.id=ajaran.tahun
where daftar.status='terima' and daftar.pindahan='no' and tahun.id= max(tahun.id)
- Dieses problem bereits hier diskutiert: stackoverflow.com/questions/21466123/...
- BTW: Sie vereinfachen die
CASE
Ausdrücke, z.B.COUNT(daftar.daftar = 'sd' OR NULL)
. - Möglich, Duplikat der ERROR: Aggregate darf nicht in einer WHERE-Klausel in postgreSQL
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Möglichkeit ist die Verwendung einer Unterabfrage berechnen, dass max-Wert:
Können Sie "HABEN" in Angriff zu nehmen:
Aggregate-Funktionen, die wir nur verwenden, WÄHLEN Sie sperren. Sie können innere select für diesen Fall:
where daftar.status='terima' and daftar.pindahan='no' and tahun.id=(select max(id) from tahun)
HAVING
Klauseln auch.verwenden einer Unterabfrage group by-oder having-Klausel