繁体   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