簡體   English   中英

如何形成這個sql查詢?

[英]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值,它是truefalse ,然后相應地隱式轉換為10

實現此“部分計數”的一種方法是將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM