[英]How to form this sql query?
SELECT state,count(*) as regular
FROM X
group by state
這給出了一個結果
AL 10
AK 20
AZ 25
SELECT state,count(*) as regular
FROM X
where alcohol_use=TRUE
group by state
這給出了一個結果
AL 5
AK 10
AZ 20
我需要一個查詢來找出百分比並為我提供類似的輸出
AL 50%
AK 50%
AZ 80%
提前致謝
SELECT state,
SUM(alcohol_use=TRUE) / COUNT(*) * 100
FROM X
GROUP BY state
SUM(alcohol_use=TRUE)
表達式會加起來alcohol_use=TRUE
值,它是true
或false
,然后相應地隱式轉換為1
或0
。
實現此“部分計數”的一種方法是將case
表達式與您的條件相加。 例如:
SELECT state,
SUM (CASE alcohol_use WHEN TRUE THEN 1 ELSE 0 END) / COUNT(*) as percent
FROM x
GROUP BY state
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.