我的表格列为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
答案 0 :(得分:5)
你可能想要这些内容:
select title, count(*) over (partition by relation_key)
from table
where relation_key = 10
结果会产生:
title | count
----------+------
title1111 | 2
title2222 | 2
请注意,您不能选择不属于Oracle GROUP BY
子句的字段(与大多数其他数据库一样)。
作为一般经验法则,如果您不想真正对数据进行分组,则应避免分组,而只需使用count(*)
等aggregate functions。通过添加over()
子句,可以将Oracle的大多数聚合函数转换为window functions,从而无需GROUP BY
子句。
答案 1 :(得分:1)
如果您收到错误,请尝试使用以下内容。
select title,count(*) from table where relation_key=10 group by title,relation_key