ユーザがいるテーブルがあります。各ユーザーには国があります。私が望むのは、ユーザー数とパーセント/総数を持つすべての国のリストを取得することです。私が今までに持っているものは次のとおりです。サブクエリのないPostgreSQLの合計のパーセント
SELECT
country_id,
COUNT(*) AS total,
((COUNT(*) * 100)/(SELECT COUNT(*) FROM users WHERE cond1 = true AND cond2 = true AND cond3 = true)::decimal) AS percent
FROM users
WHERE cond1 = true AND cond2 = true AND cond3 = true
GROUP BY contry_id
両方のクエリの条件は同じです。サブクエリなしでこれを実行しようとしましたが、その後、全ユーザー数を取得することはできませんが、国ごとの合計を取得することはできません。サブクエリなしでこれを行う方法はありますか?私はPostgreSQLを使用しています。どんな助けも高く評価されます。 ありがとうございます
ありがとうございます!しかし、私は今PostgreSQLをアップグレードしなければなりません:D – fanjabi
実際、このクエリはusersテーブルの行ごとに1つの出力行を生成するので、GROUP BYが必要です。私の答えを見てください。 – peufeu
@peufeu:前にウィンドウ関数を書いたことはありませんし、テストしたこともありません。私は構文についてもう少し詳しく読む必要があるようです。 – Nightwolf