繁体   English   中英

从两个表中获取列总和并用于计算总数的百分比

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM