id company time
01 公司1 2013-1-1
02 公司2 2013-1-2
03 公司3 2013-1-3
04 公司2 2013-1-4
05 公司3 2013-1-5
06 公司3 2013-1-6
07 公司2 2013-1-7
08 公司3 2013-1-8
09 公司1 2013-1-9
10 公司3 2013-1-9
11 公司1 2013-1-10
12 公司3 2013-1-11
13 公司2 2013-1-12
14 公司1 2013-1-13
现在我想知道 每间公司每周有多少条记录,请各位大神帮忙一下
------解决方案--------------------
SELECT COUNT(1),to_char(time,'IW'),company FROM TABLE
GROUP BY company, to_char(time,'IW')
ORDER BY to_char(time,'IW')
------解决方案--------------------
SELECT a.company, sum(1) zs,a.iw_start, a.iw_end
FROM (select company,trunc(time, 'd') iw_start, (trunc(time, 'd')+6) iw_end,fdate from table_name order by time) a
GROUP BY a.company,a.iw_start,a.iw_end
ORDER BY a.iw_start,a.company
周日是一周的第一天,不知道这样行不行
------解决方案--------------------
SELECT a.company, sum(1) zs,a.iw_start, a.iw_end
FROM (select company,trunc(time, 'd') iw_start, (trunc(time, 'd')+6) iw_end,time from table_name order by time) a
GROUP BY a.company,a.iw_start,a.iw_end
ORDER BY a.iw_start,a.company
------解决方案--------------------
SELECT company, zs, min_date, max_date
FROM (select b.iw_start, min(time) min_date, max(time) max_date
from (select company, trunc(time, 'd') iw_start, time
from table_name) b
group by b.iw_start) a,
(select c.company, sum(1) zs, c.iw_start
from (select company, trunc(time, 'd') iw_start, time
from table_name) c
group by c.company, c.iw_start) d
where a.iw_start(+) = d.iw_start
order by d.iw_start, d.company
--MIN_DATE 是某一周中,数据库数据里的最小时间;
--MAX_DATE 是某一周中,数据库数据里的最大时间;
-- iw_start 某一日期所在周的第一天
写了好几种了 不知道你要的是哪一个