2

count对于 iSeries 上的 SQL DB2 的行分区来说,不是一个有效的聚合函数吗?

此查询有效:

select ROW_NUMBER() over (partition by COL1, COL2 order by COL3 asc)
from MyTable

这个查询给出了一个语法错误:

select COUNT(1) over (partition by COL1, COL2)
from MyTable

错误消息指向单词之前的括号partition

[消息 SQL0401] 令牌 ( 不是有效令牌。有效令牌的部分列表是 , FROM INTO。

我知道我可以重写查询以避免行分区,但我想知道为什么这不起作用。

4

1 回答 1

2

不,COUNT()与 ROW_NUMBER()不是同一类型的函数

如果您想要每个 (col1,col2) 的行数,那么您可以简单地使用

select COL1, COL2, count(*)
  from MyTable
  group by col1, col2
于 2013-11-13T00:14:24.707 回答