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;
我在 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;