2

我想查询一个 DB2 表,并在一个单独的列中获取除了 select 语句返回的所有行之外的所有查询结果。

例如,如果表包含列 'id' 和 'user_id',假设有 100 行,则查询结果将显示为以下格式: (id) | (user_id) | 100。

我不希望在查询中使用“group by”子句。(以防您对我的要求感到困惑)另外,我在这里找不到示例:http: //mysite.verizon.net/Graeme_Birchall/cookbook/DB2V97CK.PDF

另外,如果有更有效的方法来获得这两个结果(值+计数),我会欢迎任何想法。我的环境使用 zend 框架 1.x,它没有用于 DB2 的 ODBC 适配器。(参见问题http://framework.zend.com/issues/browse/ZF-905。)

4

2 回答 2

4

如果我明白你的要求,那么答案应该是

select t.*, g.tally
  from mytable t,
       (select count(*) as tally
          from mytable
       ) as g;

如果这不是您想要的,那么请给出期望输出的实际示例,假设有 3 到 5 条记录,以便我们准确看到您想要的输出。

于 2013-09-08T06:27:19.403 回答
0

您将为此使用窗口/分析函数:

select t.*, count(*) over() as NumRows
from table t;

这适用于您拥有的任何类型的查询。

于 2013-09-07T22:07:39.397 回答