现在有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排序
解决方案 »
- 可以不使用sql语句查询数据吗?
- 问下,,下面这个怎么错了?
- 求唯一字符串
- oracle安装出现 "Oracle Database Configuration Assistant 失败'问题,详见内容
- 求助:为何Oracle数据库Insert记录的速度越来越慢
- 求助---oracle锁
- oracle8.1.17有没有自动备份的工具,如果有哪里有教程!!!!!!!!!谢谢
- 一个函数的小问题!如何求非零平均数~
- 求行专列例子
- ┣┫(100分求救,绝不食言)如何动态的表及表字段,再在出的表中加一个trigger?
- 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