oracle存在一张表
------------------------------
username          ddate
  aaa             2012-01-01
  bbb             2012-01-03
  ccc             2012-02-05
  ddd             2012-03-01
           ....
------------------------------我想按照周来统计数据,这里遇到的一个困难是,表中的周不是连续的,例如第1周,第2周,第3周,第4周....
想把没有出现的周的数据也列出来,用0表示,例如:
第1周      2
第2周      0
第3周      0
第4周      0
    ...
第N-1周    1
第N周      2
各位有什么好办法!

解决方案 »

  1.   

    --一年总共53周
    SELECT a.weekno,
      NVL(b.counted,0)
    FROM
      ( SELECT ROWNUM AS weekno FROM dual CONNECT BY ROWNUM <= 53
      ) a
    LEFT JOIN
      (SELECT TO_CHAR(ddate,'ww') AS weekno,
        COUNT(1)                  AS counted
      FROM yourtablename
      GROUP BY TO_CHAR(ddate,'ww')
      ) b
    ON a.weekno = b.weekno
      

  2.   

    感谢 hupeng213 
    问题已经解决了