use*_*699 2 sql oracle group-by
我有一个栏目表id,title,relation_key.我想获得count(*)相应relation_key专栏的标题.
我的表包含以下数据:
id title relation_key
55 title1111 10
56 title2222 10
57 MytitleVVV 20
58 MytitlleXXX 20
Run Code Online (Sandbox Code Playgroud)
我试过了:
select title,count(*) from table where relation_key=10 group by title
Run Code Online (Sandbox Code Playgroud)
但它只返回1排.我想要两个标题的记录relation_key=10
你可能想要这些方面的东西:
select title, count(*) over (partition by relation_key)
from table
where relation_key = 10
Run Code Online (Sandbox Code Playgroud)
结果会产生:
title | count
----------+------
title1111 | 2
title2222 | 2
Run Code Online (Sandbox Code Playgroud)
请注意,您不能选择不属于GROUP BYOracle子句的字段(与大多数其他数据库一样).
作为一般经验法则,如果您不想真正分组数据,则应避免分组,而只需使用聚合函数,例如count(*).通过添加一个子句,可以将Oracle的大多数聚合函数转换为窗口函数over(),从而无需使用GROUP BY子句.
| 归档时间: |
|
| 查看次数: |
960 次 |
| 最近记录: |