`
chinapkw
  • 浏览: 110900 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

男人oracle,有趣的分组函数

阅读更多

分组函数
记得有道sql 面试题是。以emp表为例
找出每个部门薪水的前三名。

SELECT *
  FROM (SELECT A.*, ROW_NUMBER() OVER(PARTITION BY DEPTNO ORDER BY JOB) RN
          FROM EMP A)
 WHERE RN <= 3;

 
这是一个分组函数的简单应用。
昨天公司要开年会,分房,标准间。两个人一间。
同事又不好说“我要和你一房”。。呵呵
来写个随机分组吧。
以emp为例。。14个人。分为7组。

SELECT B.*, MOD(ROWNUM, 7) ROOM
  FROM (SELECT A.* FROM EMP A ORDER BY DBMS_RANDOM.RANDOM) B
 ORDER BY ROOM;

 
很简单吗。呵呵。这样分完,同事可乐坏了。男女混住。哈哈
要改,一定要改
为了测试 给emp 加个sex 字段

CREATE TABLE my_emp AS SELECT * FROM emp;

ALTER TABLE my_emp ADD  sex VARCHAR2(1);

UPDATE my_emp SET sex=MOD(empno,2);

 

这回要男女分开,有利精神文明建设。哈哈

SELECT A.*,
       sex || CEIL(RANK() OVER(PARTITION BY A.SEX ORDER BY ROWNUM)/2) AS ROOM_ID
FROM (SELECT * FROM my_emp ORDER BY DBMS_RANDOM.random) A;

 
我想到了over 却没想到ceil 这是itpub szusunny 兄台写的。不错不错。

 

ENAME      SEX ROOM_ID
---------- --- -----------------------------------------
MARTIN     0   01
MILLER     0   01
ADAMS      0   02
TURNER     0   02
BLAKE      0   03
JONES      0   03
SCOTT      0   04
FORD       0   04
JAMES      0   05
CLARK      0   05
SMITH      1   11
ALLEN      1   11
WARD       1   12
KING       1   12

 

顺便囧一下

  • 大小: 9.4 KB
0
0
分享到:
评论

相关推荐

    oracle笔记分组函数

    oracle笔记分组函数,涉及组函数案例,在使用组函数的过程中注意事项,有具体的案例说明!

    oracle 分组函数

    本篇文章将详细阐述Oracle分组函数的概念、功能以及常用分组函数的使用方法。 一、分组函数概述 分组函数主要作用于一组数据上,而不是单个记录,它们用于对数据进行汇总,如计算总和、平均值、最大值、最小值等。...

    Oracle数据库使用分组函数来对数据进行聚集

    Oracle数据库使用分组函数来对数据进行聚集

    Oracle分组函数之ROLLUP的基本用法

    本博客简单介绍一下oracle分组函数之rollup的用法,rollup函数常用于分组统计,也是属于oracle分析函数的一种 环境准备 create table dept as select * from scott.dept; create table emp as select * from ...

    oracle分组函数(ppt文档).ppt

    Oracle 分组函数 Oracle 分组函数是一种特殊的函数,用于对查询结果进行分组处理。分组函数可以对查询结果进行聚合操作,例如计算平均值、总和、最小值、最大值等。 Oracle 提供了多种分组函数,包括 AVG、SUM、...

    oracle自定义日期函数

    Oracle 自定义日期函数 Oracle 日期处理函数是数据库管理系统中非常重要的一部分,最近看到有人在做 T-SQL 与 PL/SQL 的转化,问了些有关时间函数的处理。在 PL/SQL 中,Oracle 提供了其他的方法来处理日期函数,...

    oracle分组函数

    ### Oracle 分组函数详解 #### 一、章节目标与内容概览 在Oracle数据库中,分组函数(也称为聚合函数)是一种强大的工具,用于处理数据集并从中提取有用的信息。通过本章节的学习,读者将能够理解单行函数与分组...

    ORACLE CRC32函数

    ### ORACLE CRC32函数详解 #### 一、概述 在Oracle数据库中,`CRC32`函数是一种非常实用的功能,主要用于将字符类型的数据转换为一个唯一的数字类型,这一过程通常被称为散列(Hash)。通过该函数,可以方便地生成...

    简单的oracle 时间比较函数

    简单的oracle 时间比较函数,自己在网上找到并加以整理出来。

    oracle之占比函数

    oracle之占比函数 oracle之占比函数 oracle之占比函数

    oracle函数和分组

    总的来说,掌握这些Oracle函数和分组知识对于数据查询和分析至关重要,它们能帮助我们更有效地处理和理解数据库中的信息。通过熟练运用这些工具,可以构建出复杂的查询,满足各种业务需求。在实际工作中,不断实践和...

    Oracle MD5函数

    Oracle数据库系统中内置了MD5函数,这是一种广泛使用的哈希函数,用于生成固定长度的数字摘要,通常用于数据完整性校验和密码存储。MD5全称为Message-Digest Algorithm 5,由Ron Rivest在1991年设计,尽管它在安全性...

    Oracle字符相似度函数

    Oracle字符相似度函数是Oracle数据库系统提供的一种功能,用于评估两个字符串之间的相似性。这个功能在数据清洗、信息检索、文本分析等领域具有广泛的应用。在SQL查询中,我们可以直接使用这些函数来比较不同字符串...

    SQLServer和Oracle的常用函数对比

    在数据库管理领域,SQLServer与Oracle作为两大主流的数据库管理系统,各自拥有丰富的内置函数,用于数据处理、查询优化以及各种复杂的数据操作需求。本文将基于给定文件信息,深入探讨和对比SQLServer与Oracle中的...

    Oracle自定义聚合函数-分析函数

    Oracle 自定义聚合函数-分析函数 Oracle 自定义聚合函数是一种强大且灵活的功能,允许用户根据自己的需求创建自定义的聚合函数。聚合函数是一种特殊的函数,它可以对一组数据进行处理和计算,并返回一个结果。 ...

    oracle开窗函数学习技巧总结

    开窗函数允许我们在查询结果集的一个窗口内执行聚合操作,而无需对数据进行物理排序或分组。本文将重点介绍`OVER`函数及其相关用法,并通过具体的例子来帮助读者更好地理解和掌握这些技巧。 #### 二、`OVER`函数...

    Oracle SQL 内置函数大全

    Oracle SQL 内置函数大全 SQL中的单记录函数 给出整数,返回对应的字符 连接两个字符串 增加或减去月份 用于对查询到的结果进行排序输出

    Oracle中分组后拼接分组字符串.pdf

    Oracle 中分组后拼接分组字符串 本文主要介绍了在 Oracle 中如何对分组后的数据进行拼接操作,生成分组字符串。下面将对这个问题进行详细的分析和解释。 首先,我们需要创建一个测试表,并插入一些测试数据。这个...

    ORACLE的OVER函数使用技巧

    ORACLE的OVER函数使用技巧ORACLE的OVER函数使用技巧ORACLE的OVER函数使用技巧

    Oracle中的分析函数详解

    分析函数(Analytic Functions)是Oracle SQL中的高级特性,它们在数据集上执行计算,并返回基于分组或排序的数据结果。与聚合函数(如SUM, AVG, COUNT等)不同,分析函数可以在每个行级别上返回结果,而不只是返回...

Global site tag (gtag.js) - Google Analytics