1

这是表2中的数据

ID2        |    Count2
-----------+-----------
1345653         5
534140349       5
682527813       4
687612723       3
704318001       5

这是我在表1中的以下数据

ID1        |    Count1
-----------+-----------
1345653         4
704318001       4
  1. 如果您看到上面的表格1345653,Table2 中有这个,5 count但在 Table1 中有,同样,Table2 中有4 count这个 ID ,但在 Table1 中有。7043180015 count4 count
  2. 还有一件事我需要展示,我不知道是否可以做到。我想在最后显示每列的总和,比如最后的 Count2 列的总和和最后的 Count1 列的总和。

所以我需要在输出中这样显示。我有第一部分的工作查询,但我不确定如何处理第二部分。

ID              Count2   Count1
-----------------------------------
1345653         5        4
534140349       5        0
682527813       4        0
687612723       3        0
704318001       5        4
               22        8

这在sql中可能吗?如果是,我该如何实现?

我已经创建了只有计数工作的SQL 小提琴(意味着第一部分),而且我不确定如何在该 SQL 查询中添加每个列特征的总和。

4

3 回答 3

1

它对你有用吗?

select id2,  SUM(count2),SUM(coalesce(count1, 0)) as count1 
from table2 
 left outer join table1 
  on id1=id2
 group by id2
 with rollup

它是 mysql 语法,但大多数 RDMS 支持ROLLUP,语法差异很小

于 2012-07-26T03:25:56.003 回答
0

在标准 sql 中:

Select id, Count2,Count1, Count2+Count1 as CountSum
from table2 
left outer join table1 on table1.id=table2.id
于 2012-07-26T03:25:02.350 回答
0

您正在寻找“带有汇总”的分组。我相信以下查询应该提供您想要的。假设您使用的是 SQL Server ...

SELECT
    ISNULL(Table1.ID1, Table2.ID2) AS ID,
    SUM(ISNULL(Table2.Count2, 0)) AS Count2,
    SUM(ISNULL(Table1.Count1, 0)) AS Count1
FROM Table1
FULL JOIN Table2 ON Table2.ID2 = Table1.ID1
GROUP BY
    ISNULL(Table1.ID1, Table2.ID2) WITH ROLLUP
于 2012-07-26T03:26:01.307 回答