sql - 如何用SQL划分两个SELECT语句以获得百分比

标签 sql oracle

我正在尝试从交付表中计算皇家邮政发送的元素的百分比。

(SELECT post_method
FROM delivery_tbl
WHERE post_method = 'RM') 

/

SELECT post_method
FROM delivery_tbl;

我收到一条错误消息

"SQL command not properly ended".



对此的任何帮助都会很棒!谢谢!

最佳答案

您可以使用条件聚合来执行此操作,如下所示:

SELECT round (100 * (count(case when post_method = 'RM' then 1 end) / count(*)), 2) royal_mail_items_percentage
FROM   delivery_tbl;

我已经包含了 round功能,因为看起来您只想显示最多 2 个小数位。

使用条件聚合进行查询意味着您只需查询表一次,因此它应该比其他需要多次访问表的答案的性能更高。

关于sql - 如何用SQL划分两个SELECT语句以获得百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49266431/

相关文章:

java - Oracle SQL Developer 加载 Java 错误

oracle - PL/SQL EXECUTE IMMEDIATE inside LOOP(截断模式中所有表的过程)

php - 限制sql php中的数据

SQL select 语句 union all with itself

java - Oracle、JDBI @SqlBatch - 获取 INSERT 触及的所有行

SQL Server - 将 TIME 值舍入到下一分钟

c - 终止长时间运行的进程

php - 用 PHP 编写数学测验(单选按钮不起作用)

c# - 我的查询出现问题

php - 来自同一 ID 的 SQL 列的 SUM 值