oracle多条件分组查询数量_ORACLE分组查询和统计等

时间:2025-04-05 07:31:13

select flow_id,rw from (select t.flow_id ,rownum as rw from apex_030200.wwv_flow_list_templates t)  where rw >= 5

只能用加别名

2.子查询引用只能在查询出的结果中引用,比如子查询没有查出flow_id,外层不能用,另外外层不能引用内层的t

3.薪水前三名,内层查出薪水 order desc的虚表外层使用rownum<3

可以实现存在数据就update不存在你就insert

merge into product a

using (select  1717 product_id, '002' req_no from dual b)

on (a.product_id = and a.req_no = )

when matched then

update set  product name = ''.....................

when not matched then

insert () values ()

with connect by 可以查询出一组树的数据,注意最后connect by的条件(父节点=子节点 向上查询 反之向下查询)

可以order排序,可以加入两棵树(or),也可以加入where条件

select * from emp

where......

start with empnc = 7369 or empnc = 7204(注意不能用and )

connect by prior mgr = empno

order by ...

6 份额(查询某数据占有总数据的百分比)

select ,,,

100*round(sal/sum(sal) over(),5)

from emp t

7 连续求和(同名分为同组 累加)

select ,,,

sum(sal) over(order by sal)

from emp t

8.带条件的连续求和(分部门连续求和)

select ,,,,

sum(sal) over(partition by order by sal)

from emp t

9.分部门总和(取出orderby)

select ,,,,

sum(sal) over(partition by )

from emp t

10工资的分组查询份额(总数的百分比)带上部门分组

select ,,,,

100*round(sal/sum(sal) over (partition by ),4)

from emp t

注意这里查询的是“”分组“,因此这里查询的是变成一组为一个100%,查询的是一个部门中员工在本部分所占用的薪水比例

11分组查询出单一条件并分级(查询某一个部门的薪水的级别)注意rank()和row_number()的区别 rank是跳跃性并列(1.1.3.3.5) row_number(1.2.3.4.5)

select t.*,ROW_NUMBER() over(partition by order by desc) rank from emp t

12“总”。。。。。。这个字眼一般使用group by(区分于over(partition by order by))

按部门分组查询部门的总薪水

select sum(), from emp t group by

13 总的基础上再次分组 group by + rollup

select sum(), from emp t group by rollup ()汇总后将总和进行求和

select sum(),, from emp t group by rollup (,)注意多个rollup其实只有第一个参数有效

14cube 连接在order by后面(代替ROLLUP) rollup升级版 全部分组

15grouping实现不用java代码就可以对oracle 查询出的null字段进行赋值 0 本身结果 1合计结果

select sum(),,

(case

when((grouping()=1 and grouping()=0)) then '部门小计'

when((grouping()=1 and grouping()=1)) then '部门总计'

else end) as

job from emp t group by rollup (,)

16分组后的字段累加(比如按照员工名称,根据月份分组,实现自1月份到12月份工资累加,即二月份是 1月 + 2月 。。)

select , , , sum(sal) over (partition by order by desc) from emp t

17分组最高值 最低值 平均值 使用 max() over(partition by order by)代替sum() 还可以用min() avg()

18select * from v$transaction 查看事务

19多层分组函数和子查询之间的冲突问题

select , a.count_Sum, b.full_name, b.dept_code, b.area_code

from (select CREATOR, count() as count_Sum

from (select ,

,

instr(, ',', 1, ) + 1,

substr(,

instr(, ',', 1, ) + 1,

instr(, ',', 1, + 1) -

(instr(, ',', 1, ) + 1)) AS c

from (select ',' || checker || ',' AS ca,

checker,

LENGTH(checker),

length(checker || ','),

REPLACE(checker, ','),

length(REPLACE(checker, ',')),

nvl(length(REPLACE(checker, ',')), 0),

length(checker || ',') -

nvl(length(REPLACE(checker, ',')), 0) AS cnt

FROM wm_time_info a

where a.check_result != 1) t,

(select LEVEL lv from dual CONNECT BY LEVEL <= 100) c

where <= ) temp

group by ) a,

base_user b

where = b.user_code

外层查询和内层分组冲突

--select , a.count_Sum ,b.full_name,b.dept_code,b.area_code from (

select ,

count() as count_Sum,

FULLNAME,

DEPTCODE,

AREACODE

from (select CREATOR,

b.full_name FULLNAME,

b.dept_code DEPTCODE,

b.area_code AREACODE,

work_date

from (select work_date,

,

,

instr(, ',', 1, ) + 1,

substr(,

instr(, ',', 1, ) + 1,

instr(, ',', 1, + 1) -

(instr(, ',', 1, ) + 1)) AS c

from (

---

select work_date,

',' || checker || ',' AS ca,

checker,

LENGTH(checker),

length(checker || ','),

REPLACE(checker, ','),

length(REPLACE(checker, ',')),

nvl(length(REPLACE(checker, ',')), 0),

length(checker || ',') -

nvl(length(REPLACE(checker, ',')), 0) AS cnt

FROM wm_time_info a

where a.check_result != 1

---

) t,

(select LEVEL lv from dual CONNECT BY LEVEL <= 100) c

where <= ) temp,

base_user b

where = b.user_code) o

--where work_date >='2016-01-10'

group by , FULLNAME, DEPTCODE, AREACODE

--) a ,base_user b where = b.user_code

20 注意 本条select中的分组和子查询都不可以作为函数的参数传入

五、Oracle 分组查询、视图

一.分组函数:平均分:求和:最大值:最小值注意:前面四个必须针对数值字段,且参数只能是一个:求个数 二.分组查询1.语法是 group by 分组 ...

solr4.5分组查询、统计功能介绍

说到分组统计估计大家都不会陌生,就是数据库的group by语句,但是当我们采用solr4.5全文检索时,数据库提供再好的sql语句都没有任何的意义了,那么在solr4.5中我们如何做到分组统计呢?其 ...

oracle分组查询

分组函数 在分组函数中,如果有一个查找项分组,其他项必须也分组,比如下面的语句会报错,因为sal分组了,而ename没有分组: 1.显示工资最高的员工: 2.显示所有员工的平均工资: 2.1使用系统函 ...

oracle 分组查询

常用的函数:            ·:统计个数:COUNT(),根据表中的实际数据量返回结果:            ·:求和:SUM(),是针对于数字的统计,求和            ·:平均值 ...

oracle分组查询实例ORA-00979和ORA-00937错误分析

select ,,,, sum() from JZPZXX J &l ...

Mysql按时间段分组查询来统计会员的个数

1.使用case when方法(不建议使用)-  代码如下 复制代码 SELECT    COUNT(DISTINCT user_id) user_count,    CASE    WHEN cre ...

【Django】Django 如何支持 分组查询、统计?

代码: from import Sum alarm_sum_group_items = models.FILE_PROTECT_ALARM. ...

oracle数据库之分组查询

本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1  多表查询2)而在 ...

rails小技巧之分组查询统计并去重

分组查询并统计 (:special_type).count select special_type,count(*) from special_groups gro ...

随机推荐

CodeForces Round #179 (295A) - Greg and Array 一个线段树做两次用

线段树的区间更新与区间求和...一颗这样的线段树用两次... 先扫描1~k...用线段树统计出每个操作执行的次数... 那么每个操作就变成了 op. l  , , = times* ...

Objc将数据写入iOS真机的plist文件中

SQL SERVER 2008远程数据库移植到本地的方法

/wuzhanwen/article/details/77449229 Winform程序或网站后台的SQL SERVER 2008放置在远程服务器上,用Mi ...

sqlmap注入入门

sqlmap注入入门 sqlmap的用法: ​ linux中: sqlmap [选项] ​ Windows中: python sqlmap [选项] 常用的参数及含义: 目标 ​ -d DIRECT ...

【转载】C#递归删除文件夹目录及文件

在C#文件操作过程中,有时候需要删除相应目录,如果文件夹中含有其他文件夹或者文件,也需要一并进行删除,此时可能就需要使用递归来删除文件夹目录以及文件,递归过程中,如果遍历的对象是文件夹,则删除文件夹, ...

CentOS7 yum 安装 PHP 5.6.24

配置yum源 追加CentOS 6.5的epel及remi源. # rpm -Uvh /pub/linux/fedora/epel/6/x86_64/epel- ...

Java基础_0302:类和对象

定义类 class Book { // 定义一个新的类 String title; // 书的名字 double price; // 书的价格 /** * 输出对象完整信息 */ public voi ...

mybatis 映射器(mappers) 配置说明 加载映射文件方式

映射器(mappers) 既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了.但是首先我们需要告诉 MyBatis 到哪里去找到这些语句. Java 在自动查找这 ...

MySQL和Mariadb二进制日志binlog详解

Mariadb/mysql提供了4中不同的日志,分别是错误日志().普通日志(general log).慢日志(slow log)以及二进制日志(binlog).错误日志记录了系统启 ...

C# WinForm中添加用户控件

转:/haelang/article/details/40681003 有的时候我们需要频繁使用一些系统默认工具的组合,那么就可以使用自定义用户控件. 起一个 ...