我有一个很大的SALES_ORDERS
数据库,我需要确定ORDER
中每个SELLING_AGENT
所占的百分比。
学习 postgresql,这只是一个示例,大约有 50 万行数据。每个 ORDER#
可以由数十个 SALE_ITEM
组成(但仅由 'SALE_ITEM_1'
和 'SALE_ITEM_2'
组成>).
我想我可以尝试做这样的 SUM SELECT 操作:
SELECT (SUM(sale_item_1)+sum(sale_item_2)) as total_person_sale
FROM SALES_ORDER
WHERE orderNumber LIKE orderNumber
GROUP by SELLING_AGENT
但显然我没有掌握 WHERE 语句用于计算类似的
希望填写最后一栏,如下所示: 销售代理:
selling agent: Order# Sale_item_1 Sale_item_2 %_of_TOTAL_order
jim abc $1.00 $2.00 14.29%
steve abc $3.00 $4.00 33.33%
carl abc $5.00 $6.00 52.38%
carl def $7.00 $8.00 31.25%
steve def $9.00 $9.00 37.50%
jim def $8.00 $7.00 31.25%
steve ghi $6.00 $5.00 61.11%
patty ghi $4.00 $3.00 38.89%
最佳答案
类似这样的事情:
SELECT
s.*,
ROUND (
100.00 * (s.sale_item_1 + s.sale_item_2) /
(SELECT
SUM(sale_item_1 + sale_item_2)
FROM sales_db
WHERE orderNumber = s.orderNumber), 2) percentage
FROM sales_db s;
请参阅demo
关于sql - 在 Postgres 中,如何在同一查询中进行 COUNT 和 WHERE,然后对结果进行数学运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54055923/