DB2 SQL 计算一对多关系

DB2 SQL Count across one to many relationship

我在 IBM DB2 数据库中有两个一对多关系的表。我想不出一种方法来轻松地描述我在做什么,所以我链接了一个 SQLFiddle。

这是一个关于我正在做的工作的 SQLFiddle; Click Here

SQLFiddle 的工作方式完全符合我的需要。我的问题是,我使用的是 IBM DB2 数据库,而 COUNT 函数似乎不起作用。有没有人有办法 return SQLFiddle 以 IBM DB2 兼容的方式做什么?

这是我从 i Navigator 得到的错误; Click Here

您按错误的列进行汇总。我认为这是您想要的查询:

SELECT Table1.quote, COUNT(Table2.quote) as TotalItem
FROM Table1 LEFT JOIN
     Table2 
     ON Table1.quote = Table2.quote
GROUP BY Table1.quote
---------^

您需要按 Table1.quote 进行汇总,因为 Table2.quote 可能是 NULL,因为 LEFT JOIN.

编辑:

您的特殊问题似乎是您有两个同名的表。只需使用列别名:

SELECT t1.quote, COUNT(t2.quote) as TotalItem
FROM Table1 t1 LEFT JOIN
     Table2 t2
     ON t1.quote = t2.quote
GROUP BY t1.quote;