2

我有列为id, title,的表格relation_key。我想获得count(*)相应relation_key列的标题。

我的表包含以下数据:

id           title          relation_key
55           title1111         10
56           title2222         10
57           MytitleVVV        20
58           MytitlleXXX       20

我试过了:

select title,count(*)  from table  where relation_key=10 group by title

但它只返回 1 行。我想要两个标题记录relation_key=10

4

2 回答 2

5

你可能想要一些类似的东西:

select title, count(*) over (partition by relation_key)
from table 
where relation_key = 10

这样做的结果将产生:

title     | count
----------+------
title1111 | 2
title2222 | 2

请注意,您不能选择不属于GROUP BYOracle 子句的字段(就像在大多数其他数据库中一样)。

作为一般经验法则,如果您真的不想对数据进行分组,则应避免分组,而只需使用聚合函数,例如count(*). Oracle 的大多数聚合函数都可以通过添加子句转换为窗口函数over(),从而不再需要GROUP BY子句。

于 2012-08-16T07:11:05.847 回答
1

如果您收到错误,请尝试以下操作。

select title,count(*)  from table  where relation_key=10 group by title,relation_key
于 2012-08-16T07:13:37.920 回答