来公司第一天,也没什么事干,经理说今天需要把报表做出来,需要写几个oracle语句,用来查询各类别下的人 员 数量和占总人数比例。如下图 统计人数到不是问题,关键是比例不知道该怎么去做,上网查了好几个方式都尝试过了,但还是没能弄出来,一 下 午的时间
来公司第一天,也没什么事干,经理说今天需要把报表做出来,需要写几个oracle语句,用来查询各类别下的人
员数量和占总人数比例。如下图
统计人数到不是问题,关键是比例不知道该怎么去做,上网查了好几个方式都尝试过了,但还是没能弄出来,一
下午的时间全花在解决这个问题上了,最后在要下班的时候,我突然看到了oracle中聚合函数sum() over的使用,最
终使得问题得到了解决。
实现代码:
SELECT(CASE WHEN db_psndoc.age30 THEN '30岁及以下' END) ranges, COUNT(*) rs ,100*round(COUNT(*)/SUM(COUNT(*)) OVER(),4)||'%' percent FROM bd_psnd GROUP BY CASE WHEN bd_psndoc.age <p><span style="font-size:18px"><strong></strong></span> </p> <p><span style="font-size:18px"><strong>结果展示:</strong></span></p> <p><img src="/static/imghwm/default1.png" data-src="http://img.blog.csdn.net/20160508223110629?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" class="lazy" alt=""></p> <p> </p> <p> </p> <p> </p> <p><span style="font-size:18px">SUM() OVER用法:</span></p> <p><span style="font-size:18px">参考链接:http://www.2cto.com/database/201209/157605.html</span></p> <p><span style="font-size:18px"></span> </p> <p><span style="font-size:18px"><strong>总结:</strong></span></p> <p><span style="font-size:18px">1、要学习的东西还有很多,知道什么有用很重要。</span></p> <p><span style="font-size:18px">2、基础知识很重要,能用已知的探索未知的。</span></p> <p> </p> <p><span style="font-size:18px"></span> </p> <p><span style="font-size:18px"></span> </p> <p><span style="font-size:18px"></span> </p> <p><span style="font-size:18px"></span> </p> <p> </p>

方法:1、利用“select*from user_indexes where table_name=表名”语句查询表中索引;2、利用“select*from all_indexes where table_name=表名”语句查询所有索引。

oracle asm指的是“自动存储管理”,是一种卷管理器,可自动管理磁盘组并提供有效的数据冗余功能;它是做为单独的Oracle实例实施和部署。asm的优势:1、配置简单、可最大化推动数据库合并的存储资源利用;2、支持BIGFILE文件等。

在oracle中,可以利用“TO_SINGLE_BYTE(String)”将全角转换为半角;“TO_SINGLE_BYTE”函数可以将参数中所有多字节字符都替换为等价的单字节字符,只有当数据库字符集同时包含多字节和单字节字符的时候有效。

在Oracle中,可利用lsnrctl命令查询端口号,该命令是Oracle的监听命令;在启动、关闭或重启oracle监听器之前可使用该命令检查oracle监听器的状态,语法为“lsnrctl status”,结果PORT后的内容就是端口号。

在oracle中,可以利用“drop sequence sequence名”来删除sequence;sequence是自动增加数字序列的意思,也就是序列号,序列号自动增加不能重置,因此需要利用drop sequence语句来删除序列。

在oracle中,可以利用“select ... From all_tab_columns where table_name=upper('表名') AND owner=upper('数据库登录用户名');”语句查询数据库表的数据类型。

方法:1、利用“LOWER(字段值)”将字段转为小写,或者利用“UPPER(字段值)”将字段转为大写;2、利用“REGEXP_LIKE(字符串,正则表达式,'i')”,当参数设置为“i”时,说明进行匹配不区分大小写。

方法:1、利用“alter system set sessions=修改后的数值 scope=spfile”语句修改session参数;2、修改参数之后利用“shutdown immediate – startup”语句重启服务器即可生效。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6
视觉化网页开发工具

WebStorm Mac版
好用的JavaScript开发工具