Ich versuche, diese Abfrage in Postgresql auszuführen. Ich bekomme die gewünschten Ergebnisse, aber ich versuche, die Ergebnisse auf einen Wert in einer Spalte zu beschränken. Allerdings ist es nicht lassen Sie mich die Spalte zugreifen:Wie greife ich auf den Rang
select count(event), event, u.userid, u.campaign_id,
rank() over (partition by u.campaign_id order by count(event) desc) as THISHERE
from events e join users u on u.userid = e.userid
where THISHERE=1
group by event, 3 , 4
order by 1 desc
limit 20;
ERROR: Spalte "thishere" existiert nicht
können Sie keine Spalte alias ('thishere') in dem claus Referenz e derselben Abfrage. Deshalb hat es nicht funktioniert. Verwenden Sie stattdessen eine Unterabfrage, die dann den Zugriff auf diesen Spaltenalias ermöglicht. * auch * wenn Sie wirklich nur 1 Reihe für jede Gruppe erwarten, verwenden Sie ROW_NUMBER() anstelle von RANK(), da letzterer Zahlen wiederholen kann (mehr als 1 Sache kann denselben Rang haben) –