我有用戶表。每個用戶都有一個國家。我想要的是獲得所有國家的用戶數量和百分比/總數的列表。到目前爲止,我所擁有的是:%到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
其實這個查詢將產生每行1個輸出行的用戶表,所以你需要一個GROUP BY。看到我的答案。 – peufeu
@peufeu:我從未寫過窗口函數,也沒有測試過。似乎我需要閱讀更多的語法。 – Nightwolf