现在有BLOG_ART(博客文章表 )表中有 ART_ID, BLOG_ID, SUBJECT, CONTENT, CREATE_DATE
1 1 subject content 2009/10/11
2 2 subject2 content2 2009/12/12BLOG_ID为博客的ID,对应多个ART_ID
现在想按博主的发贴数量排序, 如果有相同的发贴数量的博客, 则需要按CREATE_DATE排序
1 1 subject content 2009/10/11
2 2 subject2 content2 2009/12/12BLOG_ID为博客的ID,对应多个ART_ID
现在想按博主的发贴数量排序, 如果有相同的发贴数量的博客, 则需要按CREATE_DATE排序
解决方案 »
- 搭建Oracle10g RAC遇到的问题
- 请教数据库一致性问题
- 这是求一天每个区域的上班时间数.现在我想求按每个月每个分区的平均小时数应如何写
- orcale视图的问题,实在解决不了!请求帮忙
- 【请问】从两个相关表update其中一个表的两个字段,效率很低,两个小时了,还没结束,为什么?(各有数据50w/10w)
- Enterprise Manager Console要什么权才能进入(9i)
- 安装的时候有问题了
- pl/sql的问题
- sql语句对ORACLE的操作
- 为什么oracle中得搜索节点(intelligent agent)搜索不到接点?导入,导出,装载都不能用?
- oracle做DBLINK查询后,为什么要roll back呢?
- oracle10gTNS-12545:因目标主机或对象不存在,连接失败
FROM (SELECT t.*, COUNT(*) over(PARTITION BY blog_id) cnt FROM blog_art t)
ORDER BY cnt, create_date;
PARTITION 是分析函数中的分组,对其它列没有要求
分析函数的功能强大,可以去找点这方面的资料看看
http://hi.baidu.com/zenghero/blog/item/b80ceab34003d5aed9335aea.html
--创建测试用表
create table blog
(
ART_ID number,
BLOG_ID number,
SUBJECT varchar2(50),
CONTENT varchar2(1000),
CREATE_DATE date
);--插入测试数据
insert into blog values(1,1,'subject1','content1',to_date('2009/09/12','yyyy/mm/dd'));
insert into blog values(2,2,'subject2','content2',to_date('2009/09/13','yyyy/mm/dd'));
insert into blog values(2,2,'subject3','content3',to_date('2009/11/25','yyyy/mm/dd'));
insert into blog values(3,3,'subject4','content4',to_date('2009/06/28','yyyy/mm/dd'));
insert into blog values(4,2,'subject5','content5',to_date('2009/05/11','yyyy/mm/dd'));
insert into blog values(5,4,'subject6','content6',to_date('2009/04/20','yyyy/mm/dd'));
insert into blog values(6,4,'subject7','content7',to_date('2010/12/02','yyyy/mm/dd'));--执行查询
select count(1) over(partition by BLOG_ID) as "icount",
blog.*
from blog
order by 1 desc,6 asc