oracle 按月分组查询WITH tmp AS
(select '张一' as names,'2014年1月' as dates,'90' as sorcs from dual union
select '张四' as names,'2014年1月' as dates,'66' as sorcs from dual union
select '张一' as names,'2014年2月' as dates,'84' as sorcs from dual union
select '张二' as names,'2014年2月' as dates,'75' as sorcs from dual union
select '张四' as names,'2014年2月' as dates,'48' as sorcs from dual union
select '张三' as names,'2014年3月' as dates,'75' as sorcs from dual union
select '张四' as names,'2014年3月' as dates,'96' as sorcs from dual union
【oracle怎么按月分组 oracle 按月分组】select '张一' as names,'2014年4月' as dates,'94' as sorcs from dual union
select '张四' as names,'2014年4月' as dates,'75' as sorcs from dual union
select '张三' as names,'2014年5月' as dates,'84' as sorcs from dual union
select '张四' as names,'2014年6月' as dates,'75' as sorcs from dual union
select '张二' as names,'2014年7月' as dates,'64' as sorcs from dual union
select '张一' as names,'2014年8月' as dates,'77' as sorcs from dual )
SELECT names,
SUM(CASE WHEN dates ='2014年1月' THEN sorcs END ) AS "2014年1月" ,
SUM(CASE WHEN dates ='2014年2月' THEN sorcs END ) AS "2014年2月",
SUM(CASE WHEN dates ='2014年3月' THEN sorcs END ) AS "2014年3月"
FROM tmp
GROUP BY names
你这个是要行列互换吧?
oracle数据库是怎样实现按月分区的查询的时候按table来查,一个表的所有分区都属于table 。
但每个分区都是单独的segment,如果查询限制了分区键 , 那么查询只落在特定的segment,而segment在底层对应的数据块是不同的 , 这样可以减少数据的访问 。
oracle中group by按月分组统计创建测试表
create table test
(姓名 varchar2(10),
访问时间 date,
进入时间 date,
离开时间 date);
insert into test values ('张三',to_date('2013-02-03 15:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-03 15:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-03 15:33:22','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('李四',to_date('2013-02-04 15:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-04 18:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-04 18:53:22','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('王武',to_date('2013-02-04 15:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-05 17:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-05 18:23:22','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('张三',to_date('2013-02-04 15:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-06 11:23:22','yyyy-mm-dd hh24:mi:ss'),to_date('2013-02-06 14:23:22','yyyy-mm-dd hh24:mi:ss'));
运行
select 姓名,
to_char(访问时间,'yyyy-mm') 访问月份,
to_char(trunc(round(sum(离开时间-进入时间)*1440)/60))||'小时'||to_char(round(sum((离开时间-进入时间)*1440))-trunc(round(sum(离开时间-进入时间)*1440)/60)*60)||'分钟' 时间汇总,
count(*) 访问次数 from test
group by 姓名,to_char(访问时间,'yyyy-mm');
结果
oracle数据库是怎样实现按月分区的?求详细解答代码简单就是你复制的那样
具体的实现方式就是
在你ORD_ACT_PART01 分区中,要存放日期小于2003年5月1号的数据,也就是存放2003年4月的,以及以前的所有
ORD_ACT_PART02 分区中存放2003年5月的数据,但是因为之前有了2003年4月的存放在分区1里,所以这里只存放5月的了,后边也类似
但是你这个吧,只建了3个分区 , 到存放7月的数据,就会提示插入错误了,因为你没有存放7月的分区,所以只能再建,语法就是跟楼上那些人写的差不多了
ALTER TABLE
ORDER_ACTIVITIES
ADD PARTITION ORD_ACT_PART04 VALUES LESS THAN
(TO_DATE('01-AUG-2003','DD-MON-YYYY')) TABLESPACE ORD_TS04
不过建议起名时最好p200301,p200302这样的一目了然
关于oracle怎么按月分组和oracle 按月分组的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 即时拍摄什么意思,即时拍摄什么意思
- postgresql实战测评的简单介绍
- oracle表空间查询数据,oracle数据库表空间查询
- java复杂工厂类代码 java简单工厂模式
- 钓鱼直播用什么加长镜头,直播钓鱼用什么拍摄
- redis查看本地可用,redis查看当前是哪个数据库
- 辽宁sap软件维护,sap维护价格
- Linux命令总共多少个 linux所有命令详解
- flutter接入抖音小视频的简单介绍