两个选择计数查询,然后计算百分比

编程入门 行业动态 更新时间:2024-10-12 05:55:16
本文介绍了两个选择计数查询,然后计算百分比的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我想结合两个查询

SELECT COUNT(*) FROM abc; SELECT COUNT(Status) FROM ABC WHERE Status='Active';

然后计算百分比(将第二个查询除以第一个查询).我想在一个查询中实现这一目标.到目前为止,我已经尝试过:

And then calculate the percentage (by taking the 2nd query divided by first query). I'd like to achieve this in one single query. What i've attempted so far:

SELECT COUNT(*) AS A FROM abc UNION SELECT COUNT(Status) AS B FROM ABC WHERE Status='Active'; UNION SELECT(COUNT(Status)*100/SELECT COUNT(*) FROM abc)) AS %ofAB FROM abc WHERE Status='Active'

我得到的是

A -- 31 36 86,11111111

我想要什么:

A | B | %ofAB --------------------- 36 | 31 | 86,1111111%

推荐答案

这应该给您您想要的东西:

This should give you what you want:

SELECT COUNT(*) AS TotalCount, SUM(IIF(Status = 'Active', 1, 0)) AS ActiveCount, ROUND((SUM(IIF(Status = 'Active', 1, 0)) * 100/ COUNT(*)),2) AS PctActive FROM Abc

没注意到这是用于Access的.我不知道CAST是否在Access中可用,因此您可能需要使用等效函数来确保整数不只是产生1或0.Access可能会自动将除法转换为十进制,但在SQL Server中却没有.

Didn't notice that this was for Access. I don't know if CAST is available in Access, so you may need to use an equivalent function to make sure that the integers don't simply yield 1 or 0. It's possible that Access will convert a division into a decimal automatically, but in SQL Server it does not.

更多推荐

两个选择计数查询,然后计算百分比

本文发布于:2023-11-29 11:36:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1646284.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:百分比   两个

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!