我正在使用sybase。
我有两张这样的表:
USER | HITS
------------
A | 2
B | 1
C | 4
E | 3
USER | HITS
------------
A | 2
B | 8
C | 1
D | 2
我想在USER和SUM HITS列上将它们组合起来得到如下结果:
USER | HITS
------------
A | 4
B | 9
C | 5
D | 2
E | 3
我能够使用此查询部分地将它们组合在一起:
select a.USERNAME, sum(a.HITS+b.HITS)
from table1 a, table2 b
where a.USERNAME=b.USERNAME
group by a.USERNAME
我不知道该怎么做才能得到我想要的整个数据集......我在尝试使用JOIN或UNION时遇到了麻烦...请帮忙:))
答案 0 :(得分:4)
试试这个:
SELECT USER, SUM(HITS) HITS
FROM
(SELECT USER, HITS
FROM Tbl1 UNION ALL
SELECT USER, HITS
FROM Tbl2) A
GROUP BY USER
答案 1 :(得分:1)
不确定Sybase是否有with
,否则您可以按照哈姆雷特的解决方案嵌套子查询。
;with x (user, hits) as (
select
user, hits
from
table1
union all
select
user, hits
from
table2
)
select
user,
sum(hits) as hits
from
x
group by
user;
答案 2 :(得分:0)
你没有得到什么样的结果?试试这个,我更喜欢这种格式,因为它很容易阅读
选择a.USERNAME,sum(a.HITS + b.HITS) from table1 a Inner join table2 b on a.username = b.username 由a.USERNAME分组