SQL 计数操作

标签 sql postgresql

我有 2 个查询使用同一个表:总计,我需要评估结果的百分比。 (Postgres 9.4)

SELECT COUNT(*) FROM total
SELECT COUNT(*) FROM total WHERE field1 = False

示例:

  • 总计数没有过滤器返回 100 行
  • Total with field1 = False 返回 10 行。

我需要获得 10%,即满足特定条件的百分比。 100/10 在 SQL 中计算此条件的最佳方法是什么?

SELECT * FROM (
SELECT COUNT(*) FROM total /
SELECT COUNT(*) FROM total WHERE field1 = False ) 

最佳答案

SELECT COUNT(CASE 
               WHEN field1=false THEN 1 
             END) / COUNT(*)*100 AS percentage 
FROM table

您可以使用 case 表达式进行条件聚合

关于SQL 计数操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49951355/

相关文章:

mysql - 如何在 SQL 中转置表

sql - 如何使用 FULL JOIN 获取空结果表?

database - 为什么即使在限制结果时公用表表达式也更快?

sql - 只要事务尚未提交,SQL Server 是否允许事务中出现约束违规?

SQL Insert Select 当select 检索多条记录时

java - Android Studio 使用应用程序部署文件

mysql - 从 Node.js Cloud Function 插入 Google Cloud SQL

PostgreSQL:如何修改/复制之前的文本

postgresql - Postgres 函数(通过 npgsql)调用 ExecuteNonQuery 返回 -1 作为受影响行的结果

linux - Docker——几个容器