【问题标题】:Left Join and Sum between tables giving me a weird result - PostgreSQL表之间的左连接和求和给了我一个奇怪的结果 - PostgreSQL
【发布时间】:2014-05-25 08:06:48
【问题描述】:

下面是两张表。

表1:

标签值 一个 10 18 15 乙 11 乙 20 乙 10 C 17 C 17 C 18

表2:

标签计数 一个 20 17 11 乙 20 17 17 C 14 C 20 C 19

我正在运行这个查询。

选择 表1.“标签”, 总和(“价值”), 总和(“计数”) 从表 1 左加入表 2 表 1.“标签”= 表 2.“标签” GROUP BY Table1.“标签”

结果我需要得到的是这个。

标签值计数 一个 43 48 乙 41 54 C 52 53

但我得到的是。

标签值计数 12491 12346 213295 1243456 1578105 123434

我不知道为什么会得到这个结果。

如果我在查询中做错了什么,请帮助我。

我刚刚涉足 PostgreSQL 和数据库。

【问题讨论】:

  • SELECT 标签,SUM(value) FROM (SELECT * FROM table1 UNION ALLL SELECT * FROM table2)x GROUP BY 标签; -- 这可能需要适应 POSTGRE 语法

标签: database postgresql


【解决方案1】:

您的结果包含三列。 标签,总和(值),总和(计数) 所以

label   sum
A   12491
B   213295
C   1578105

你看到的是:

a 124 91
b 2132 95
c 15781 105

空间是什么? 查看我的经验:

digoal=# create table t1(id int, v int);
CREATE TABLE
digoal=# create table t2(id int, c int);
CREATE TABLE
digoal=# insert into t1 values (1,10);
INSERT 0 1
digoal=# insert into t1 values (1,20);
INSERT 0 1
digoal=# insert into t1 values (1,30);
INSERT 0 1
digoal=# insert into t1 values (2,10);
INSERT 0 1
digoal=# insert into t1 values (2,20);
INSERT 0 1
digoal=# insert into t1 values (2,30);
INSERT 0 1
digoal=# insert into t1 values (3,10);
INSERT 0 1
digoal=# insert into t1 values (3,20);
INSERT 0 1
digoal=# insert into t1 values (3,30);
INSERT 0 1
digoal=# insert into t2 select * from t1;
INSERT 0 9
digoal=# select t1.id,sum(v),sum(c) from t1 left join t2 on t1.id=t2.id group by t1.id;
 id | sum | sum 
----+-----+-----
  1 | 180 | 180
  2 | 180 | 180
  3 | 180 | 180
(3 rows) 

你可以设置fieldsep来查看。

pg93@db-172-16-3-150-> psql -A
psql (9.3.3)
Type "help" for help.
digoal=# \pset fieldsep ,
Field separator is ",".

digoal=# select t1.id,sum(v),sum(c) from t1 left join t2 on t1.id=t2.id group by t1.id;
id,sum,sum
1,180,180
2,180,180
3,180,180
(3 rows)

【讨论】:

  • 非常感谢!!在您的帮助下,我找到了错误的地方:)
猜你喜欢
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 2013-12-19
  • 2023-03-08
  • 2018-12-30
  • 2021-08-13
相关资源
最近更新 更多