首页 > 数据库 >Oracle 中实现交叉表 查询

Oracle 中实现交叉表 查询

时间:2023-07-14 10:36:49浏览次数:35  
标签:right 交叉 gender sum 查询 Oracle total select left

交叉表能清晰准确的反映出数据的关系,因此在实际应用中也经常见到,但是作为二维表格的关系型数据在统计时不能简单的通过查询来实现,这里以Oracle 为例简单介绍一下交叉表的查询:

百度模板图片:
image

  • 一、创建数据表
--建表
create table tbUser(Gender varchar2(10),Handness varchar2(30));
--插入模拟数据
declare
 i integer;
begin
  for i in 1..4 loop
    insert into tbUser(Gender,Handness)
    values('Female','Left');
  end loop;
  commit;
end;

image

  • 二、通过查询生成交叉表
with t1 as(
select gender,sum(left) left,sum(right) right,sum(total) total from(
select gender,sum(male) male,sum(female) female,sum(Left) left, sum(Right) right,(sum(male)+sum(female)) total from(
select gender,decode(gender,'Male',1,0) male,decode(gender,'Female',1,0) female,decode(handness,'Left',1,0) Left,decode(handness,'Right',1,0) Right
 from tbUser)
 group by gender,left,right
 )
group by gender)
select gender,right,left,total from t1
union all 
select 'total' gender,sum(right) right,sum(left) left,sum(total) total from t1;

效果:
image

标签:right,交叉,gender,sum,查询,Oracle,total,select,left
From: https://www.cnblogs.com/sundh1981/p/17553026.html

相关文章

  • Oracle EBS:注册Form表单和function功能基本操作
    OracleEBS:注册Form基本操作。这里将注册Form的基本步骤记录下来。1.首先,查看当前用户是否具备应用开发员责任。如果没有需要为当前登录用户配置应用开发员责任权限。2.配置完应用开发员角色后,打开oracleApplication表单界面,切换角色到应用开发员,打开应用产品,即可看到表单注......
  • 北京:不用选医保也能报销的医院,这样查询! 转载
    人民网北京3月8日电(记者乔业琼)目前,北京市共有2900余家基本医疗保险定点医疗机构,按照北京市基本医疗保险参保人员就医管理规定,除本人选定的定点医疗机构以外,所有定点中医医院、定点专科医院和39家定点A类医院为参保人员共同的定点医院,无需选择,可按规定就医。自2021年7月1日起,北京......
  • JdbcTemplate(操作数据库-查询返回对象、查询返回集合)
    实现类:packageorg.example.spring.dao;importorg.example.spring.entity.Book;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.jdbc.core.BeanPropertyRowMapper;importorg.springframework.jdbc.core.JdbcTemplate;im......
  • 62.Oracle的实例恢复(instance recovery)和介质恢复(media recovery)
    Oracle数据库中的SCN说明:4种SCN:系统检查点(SystemCheckpoint)SCN数据文件检查点(DatafileCheckpoint)SCN结束SCN(StopSCN)开始SCN(StartSCN)1)systemcheckpointscn --当checkpoing完成后,oracle将systemCheckpointScn号存放在控制文件中,可以通......
  • 怎样优雅地增删查改(五):按组织架构查询
    @目录原理实现应用测试之前我们实现了Employee,Alarm管理模块以及通用查询应用层。Employee的集合查询业务,是通过重写CreateFilteredQueryAsync方法,来实现按组织架构查询的过滤条件。我们将这段逻辑代码提取到通用查询应用层中,便可实现在任何业务的按组织架构查询。原理Employ......
  • 在 Oracle Linux 上安装 Shared Folders
    在OracleLinux上安装SharedFolders对于OracleDatabase11g,ZIP安装文件总共有2GB多。由于需要从每个来宾VM访问它们以安装数据库,我决定利用OracleVMVirtualBox的SharedFolders。SharedFolders特性允许来宾VM访问主机文件系统中的存储......
  • mybatis-plus QueryWrapper and or 连用组成查询条件
    我的代码片段StringnumberCode=(String)params.get("numberCode");if(StringUtils.isNotBlank(numberCode)){wrapper.and(qw->qw.eq("number",numberCode).or().eq("code",numberCode));//wr......
  • 寻找oracle float字段转型过程中丢失的“0”
    updatet_tett  sett.string_field=float_field 当float字段赋值给string字段是,如果值为0.6,到string字段后显示为".6"; 正确写法: updatet_tett  sett.string_field=to_char(t.float_field,'fm99999990.9')  说明:关于“0”:oracle自动补位关于“9”:实际存储数字......
  • DB2数据库怎么查询到多条,但只取首行数据
    DB2数据库怎么查询到多条,但只取首行数据select*fromemployeeFETCHFIRST1ROWSONLY;解释:employee假设是一个数据库表,也就是说在你的查询语句后边加上FETCHFIRST1ROWSONLY就可以了。......
  • vue 模糊查询
    html代码<divid="root"><h3>人员列表</h3><inputtype="text"placeholder="请输入名字"v-model="keyWord"><ul><liv-for="(p,index)offilPersons"......