Sql 从两个表中获取列总和,并用于计算总数的百分比
这个问题非常类似于,但在我的例子中,我从两个表中获取列 我的原始查询:Sql 从两个表中获取列总和,并用于计算总数的百分比,sql,postgresql,join,window-functions,Sql,Postgresql,Join,Window Functions,这个问题非常类似于,但在我的例子中,我从两个表中获取列 我的原始查询: SELECT price, qty, price*qty as total FROM tableprices AS t1, tableqty AS t2 WHERE t1.codigo = t2.codigo 然后,我想在表中的每一行获得另一列,其中包含总计百分比。使用窗口功能: SELECT price, qty, price*qty as total, (price * qty) / sum(pric
SELECT price, qty, price*qty as total
FROM tableprices AS t1, tableqty AS t2
WHERE t1.codigo = t2.codigo
然后,我想在表中的每一行获得另一列,其中包含总计百分比。使用窗口功能:
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
子句中使用逗号。使用窗口功能:
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
子句中使用逗号。使用窗口函数:
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
请注意,这使用了标准的显式连接语法(带有关键字上的),而不是老式的隐式连接(在FROM
子句中带有逗号):这种旧语法几十年前就不受欢迎了,不应该在新代码中使用。使用窗口函数:
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
子句中带有逗号):这种旧语法几十年前就不受欢迎了,不应该在新代码中使用。非常感谢。另一方面,我“只有”50多个函数或多或少使用逗号。我明天有工作;-)非常感谢。另一方面,我“只有”50多个函数或多或少使用逗号。我明天有工作;-)