sql – 如何跨两个不相关的表执行SUM?
发布时间:2020-05-24 16:28:01 所属栏目:MsSql 来源:互联网
导读:我试图用postgres总结两个不相关的表.使用 MySQL,我会做这样的事情: SELECT SUM(table1.col1) AS sum_1, SUM(table2.col1) AS sum_2 FROM table1, table2 这应该给我一个表,其中包含两个名为sum_1和sum_2的列.但是,postgres不会给我这个查询的任何结果. 有任
|
我试图用postgres总结两个不相关的表.使用 MySQL,我会做这样的事情: SELECT SUM(table1.col1) AS sum_1,SUM(table2.col1) AS sum_2 FROM table1,table2 这应该给我一个表,其中包含两个名为sum_1和sum_2的列.但是,postgres不会给我这个查询的任何结果. 有任何想法吗? 解决方法SELECT (SELECT SUM(table1.col1) FROM table1) AS sum_1,(SELECT SUM(table2.col1) FROM table2) AS sum_2; 你也可以把它写成: SELECT t1.sum_c1,t1.sum_c2,t2.sum_t2_c1
FROM
(
SELECT SUM(col1) sum_c1,SUM(col2) sum_c2
FROM table1
) t1
FULL OUTER JOIN
(
SELECT SUM(col1) sum_t2_c1
FROM table2
) t2 ON 1=1;
FULL JOIN与dud条件一起使用,因此任何子查询都不会产生任何结果(空)而不会导致更大的查询没有结果. 我不认为你编写的查询会产生你期望获得的结果,因为它在table1和table2之间进行CROSS JOIN,这会使每个SUM通过另一个表中的行数膨胀.请注意,如果table1 / table2为空,则CROSS JOIN将导致X行乘以0行以返回空结果. 看看这个SQL Fiddle并比较结果. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQL Server 2008中的Count(Distinct([value))OVER(Partitio
- 是否可以在Azure VIP交换期间更改连接字符串
- SQLServer Execpt和not in 性能区别
- sql-server – 基于SQl Server 2008中的2列的唯一密钥?
- 数据库设计 – 用于处理动态分类的专用分面搜索引擎 – 仅仅
- 用于求和数据的SQL查询
- sql-server – 如何将nvarchar解码为文本(SQL Server 2008
- tsql – T-SQL语法问题 – 在CASE语句中使用OR
- sql – Nhibernate计数不同(基于多列)
- sql – 用于传递闭包的递归查询
