0
私はPostgreSQLでこのクエリを実行しようとしています。私が望む結果が得られますが、結果を列の値に制限しようとしています。ランクにアクセスするには
select eu.*
from (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
group by event, 3 , 4
) eu
where THISHERE = 1
order by 1 desc
limit 20;
私はあなたができると思う: "thishere" あなたはサブクエリを使用する必要が
ここでは、場所の列エイリアス( 'thishere')を参照することはできません同じ質問のe。それがうまくいかない理由です。代わりにサブクエリを使用して、その列エイリアスへのアクセスを許可します。あなたが文字通り各グループの1行を期待している場合は、RANK()の代わりにROW_NUMBER()を使用します。後者は数字を繰り返すことができます(1つ以上のものが同じランクを持つことができます) –