Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从两个表中获取列总和,并用于计算总数的百分比_Sql_Postgresql_Join_Window Functions - Fatal编程技术网

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多个函数或多或少使用逗号。我明天有工作;-)