ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 请教基于Group By 时间分组统计SQL语句优化

请教基于Group By 时间分组统计SQL语句优化

原创 Linux操作系统 作者:seron 时间:2008-01-18 11:58:30 0 删除 编辑
需求是一个大家常见的功能.博客中.对博客的时间索引归档.msn space就有这种功能.为了让热心的朋友了解.我把需求详细讲述一下:
博客中.通常有一个归档.即显示统计用户一年当中每个月份发表的文章数.如果用户那个月没有发表文章,就排除不统计.数据库表结构(USER_BLOG):
BLOG_ID,
USER_ID,
BLOG_NAME,
BLOG_CONTENT,
CREATE_TIME
我写了一条实现的
select count(*) ,to_char(ub.CREATE_TIME,'yyyy-MM') as pubTime from USER_BLOG ub WHERE  ub.USER_ID='111111'
group by to_char(ub.CREATE_TIME,'yyyy-MM')
order by to_char(pubTime,'yyyy-MM') (这个可加可不加)
结果如下:
COUNT(*)               pubTime
----------------    ------------------------------
     10                        2007-10
     20                        2007-09
用to_char但这个性能较差.发贴上来请大家帮忙优化一下.谢谢

在23万多条记录.执行时间如果我去掉WHERE 子条件接近一秒钟(没加索引).想请教大家有没有更好的SQL写法?

[ 本帖最后由 seron 于 2008-1-18 16:22 编辑 ]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/404101/viewspace-157002/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-18

  • 博文量
    6
  • 访问量
    27959