以下是两个表格。
表1:
Label value A 10 A 18 A 15 B 11 B 20 B 10 C 17 C 17 C 18
表2:
Label count A 20 A 17 A 11 B 20 B 17 B 17 C 14 C 20 C 19
我正在运行此查询。
SELECT Table1."label", sum("value"), sum("count") FROM Table1 LEFT JOIN Table2 ON Table1."label" = Table2."label" GROUP BY Table1."label"
结果我需要得到的就是这个。
label value count A 43 48 B 41 54 C 52 53
但我得到的是。
label value count A 12491 12346 B 213295 1243456 C 1578105 123434
我不知道为什么会得到这个结果。
如果我在查询中做错了,请帮我解决。
我刚刚进入PostgreSQL和数据库。
答案 0 :(得分:0)
您的结果有三列。 标签,总和(值),总和(计数) 所以
label sum
A 12491
B 213295
C 1578105
你看到的是:
a 124 91
b 2132 95
c 15781 105
空间是什么? 看到我的EXP:
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)