![](/img/trans.png)
[英]Get column sum and use to calculate percent of total, why doesn't work with CTEs
[英]Get column sum from two tables and use to calculate percent of total
这个问题与这个问题非常相似,但就我而言,我从两个表中获取列。
我的原始查询:
SELECT price, qty, price*qty as total
FROM tableprices AS t1, tableqty AS t2
WHERE t1.codigo = t2.codigo
然后,我想在每一行的表格中获取另一列,其中包含占总数的百分比。
使用 window 功能:
SELECT price, qty, price*qty as total,
(price * qty) / sum(price * qty) over () as ratio
FROM tableprices p join
tableqty q
ON q.codigo = p.codigo;
请注意,我还修复了您陈旧的JOIN
语法。 切勿在FROM
子句中使用逗号。
使用 window 函数:
SELECT
price,
qty,
price * qty as total,
100.0 * price * qty / sum(price * qty) over() percent_total
FROM tableprices AS t1
INNER JOIN tableqty AS t2 ON t1.codigo = t2.codigo
请注意,这使用标准的显式连接语法(使用ON
关键字)而不是老式的隐式连接(在FROM
子句中使用逗号):这种旧语法在几十年前就已失宠,不应在新代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.