Oracle 查询优化改写(第七章)

news2024/9/24 17:18:36

第七章 日志运算

1 加减年月日时分秒 +替换为-

--加减年月日时分秒 +替换为-
SELECT Add_Months(SYSDATE, 5 * 12) AS 加5年,
       Add_Months(SYSDATE, 5) AS 加5月,
       SYSDATE + 5 AS 加5天,
       SYSDATE + 5 / 24 AS 加5小时,
       SYSDATE + 5 / 24 / 60 AS 加5分钟,
       SYSDATE + 5 / 24 / 60 / 60 AS 加5秒
  FROM Emp;
  

2.日期间隔年月日时分秒

--日期间隔年月日时分秒
SELECT Months_Between(Date1, Date2) / 12 as 年,
       Months_Between(Date1, Date2)  as 月,
       date3 as 日,
       date3*24 时,
       date3*24*60 分,
       date3*24*60*60 秒 
  FROM (SELECT MAX(Hiredate) Date1,
               MIN(Hiredate) Date2,
               MAX(Hiredate) - MIN(Hiredate) Date3
          FROM Emp);
--查询所有员工入职以来的工作期限,用“XX年XX月XX日”的形式表示。
SELECT Ename,
       Trunc(Months_Between(SYSDATE, Hiredate) / 12) || '年' ||
       Trunc(MOD((Months_Between(SYSDATE, Hiredate)), 12)) || '月'||
       trunc(sysdate-add_months(hiredate,Months_Between(SYSDATE, Hiredate))) || '日'
  FROM Emp

3.确定两个日期之间的工作天数

--筛选原始数据
--通过max()和min()转为一行
--枚举两个日期之间的天数要加1,比如1到2是两天,有两条数据(2-1)+1
--通过与T5OO做笛卡尔积枚举30天的所有日期。
--根据这些日期得到对应的工作日信息。
--进行过滤操作。
create table T500 As select level as ID from dual connect by level<=500

SELECT SUM(CASE
             WHEN To_Char(Min_Hd + T500.Id - 1,
                          'DY',
                          'NLS_DATE_LANGUAGE = American') IN ('SAT', 'SUN') THEN
              0
             ELSE
              1
           END) AS 工作天数
  FROM (SELECT MIN(Hiredate) AS Min_Hd, MAX(Hiredate) AS Max_Hd
          FROM Emp
         WHERE Ename IN ('BLAKE', 'JONES')) x,
       T500
 WHERE T500.Id <= Max_Hd - Min_Hd + 1;

SELECT COUNT(*)
  FROM (SELECT 日期,
               To_Char(日期, 'DY', 'NLS_DATE_LANGUAGE = American') AS Dy
          FROM (SELECT Min_Hd + (T500.Id - 1) AS 日期
                  FROM (SELECT MIN(Hiredate) AS Min_Hd,
                               MAX(Hiredate) AS Max_Hd
                          FROM Emp
                         WHERE Ename IN ('BLAKE', 'JONES')) x,
                       T500
                 WHERE T500.Id <= ((Max_Hd - Min_Hd) + 1)))
 WHERE Dy NOT IN ('SAT', 'SUN');

4.确定一年中周内各日期的次数

WITH X0 AS
  (SELECT To_Date('2013-01-01', 'yyyy-mm-dd') AS 年初 FROM Dual),
 X1 AS
  (SELECT 年初, Add_Months(年初, 12) AS 年底 FROM X0),
 X2 AS
  (SELECT Next_Day(年初 - 1, LEVEL) AS D1, Next_Day(年底 - 8, LEVEL) AS D2
     FROM X1
   CONNECT BY LEVEL <= 7)
 SELECT To_Char(D1, 'dy') AS 星期, ((D2 - D1) / 7 + 1) AS 天数
   FROM X2;

5.确定当前记录和下一条记录之间相差的天数

SELECT Ename, Hiredate, Next_Hd, Next_Hd - Hiredate Diff
  FROM (SELECT Deptno,
               Ename,
               Hiredate,
               Lead(Hiredate) Over(ORDER BY Hiredate) Next_Hd
          FROM Emp
         WHERE Deptno = 10);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/689383.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【宝塔服务器】宝塔通过composer安装TP依赖

屡屡碰壁&#xff0c;安装一个项目&#xff0c;发现没有依赖&#xff0c;需要使用composer安装&#xff0c;没接触过&#xff0c;找了网上也没攻略&#xff0c;自己弄了后有以下问题&#xff0c;经过调整解决了&#xff1a; 报错1:没有安装fileinfo扩展 Loading composer rep…

Debian 安装gcc, g++

自从周日把刚把安装好的Debian12搞坏后&#xff0c;这两天一直在重装系统&#xff0c;就没有完全成功过&#xff0c;好在最后一次安装Debian11的时候&#xff0c;系统起来后有网络&#xff0c;但在安装桌面及GNOME时失败了&#xff0c;只能开机进入命令行模式。 安装gcc 和 g 只…

【VUE】ElementUI实现表格拖拽功能及行大图预览

一. 背景 elementui没自带的拖拽排序功能&#xff0c;所以需要借助第三方插件sortablejs 二. 步骤 安装 npm install sortablejs --save 引入 import Sortable from ‘sortablejs’ template文件应用 row-key填写唯一标识 id"dragTable"是为了通过document找到…

智能电网如何助力能源革命实现高效能源管理与分配?

能源革命是全球范围内的重要议题&#xff0c;为了实现可持续发展和应对能源挑战&#xff0c;人们对新的能源技术和能源管理方式寄予了厚望。智能电网作为能源革命的关键组成部分&#xff0c;利用先进的通信和信息技术&#xff0c;实现了高效能源管理与分配&#xff0c;为能源革…

MATLAB——信号处理仿真功能课程设计报告

目 录 摘 要... I 目 录. II 1 设计目的及内容. 1 1.1 课程设计目的. 1 1.2 课程设计内容. 1 2 课程设计基本原理. 3 2.1 基本信号. 3 2.2 计算原理. 3 3 设计与仿真. 4 3.1 基本信号. 4 3.2计算过程. 6 3.3 matlab仿真原理. 7 3.4 计算结果. 8 3.5结果…

Python-练脑系列-04依旧是数据结构

前言 &#x1f4cc;今天是Python的第四次练脑&#xff0c;本次题目为三题较为简单的题目 给定一个字典&#xff0c;其中键和值都是整数&#xff0c;找出字典中所有键和值的和为偶数的键值对&#xff0c;并返回结果的列表。给定一个字典和一个值&#xff0c;将字典中所有等于该值…

【软考网络管理员】2023年软考网管初级常见知识考点(22)- 交换机配置及命令

涉及知识点 华为交换机配置命令大全&#xff0c;交换机设备参数设置 &#xff0c; 交换机路由器的基本配置&#xff0c;交换机命令汇总 &#xff0c; VLAN 配置 &#xff0c; GVRP 配置 &#xff0c; STP 配置&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员…

OpenCV——总结《图像处理-3》形态学操作

1.开运算和腐蚀-膨胀是相同的&#xff0c;同理闭运算也是。 #一个开运算和腐蚀-膨胀的效果是相同的在这里进行对比 eroded cv2.erode(img,kernel) dilated cv2.dilate(eroded,kernel) cv2.imshow(Eroded-Swell Image,dilated)open cv2.morphologyEx(img,cv2.MORPH_OPEN,ker…

数据库锁全集

一、全局锁&#xff1a; 顾名思义&#xff0c;全局锁执行后&#xff0c;整个库都锁定。有读锁和写锁&#xff0c;加锁和解锁方式如下&#xff1a; 加锁&#xff1a;flush tables WITH READ LOCK&#xff1b; 解锁&#xff1a;UNLOCK TABLES; 使用场景&#xff1a;做全库的逻辑…

pycharm中Terminal输入sqlite3,出现无法将sqlite项识别为cmdlet**的解决方法

前提&#xff1a;本机上已安装sqlite3&#xff0c;安装详见&#xff1a;pycharm社区版中安装配置sqlite3_Sunshine_0426的博客-CSDN博客 问题&#xff1a; cmd命令行中或pycharm中Terminal行输入sqlite3 db.sqlite3命令后&#xff0c;出现“无法将“sqlite3”项识别为 cmdlet…

伦敦银实时行情最新解读

在伦敦银市场上做交易&#xff0c;不管大家做的是长线、中线还是短线&#xff0c;都离不开对最新的实时行情走势进行解读。借助交易软件上一些常用的技术指标&#xff0c;伦敦银投资者可以从技术面增加自己的交易操作准确率。 Stochastic是相当常见而实用的技术指标&#xff0c…

vue点击鼠标生成24字社会主义核心价值观上浮特效

在app.vue中 <template><div id"app"><transition name"el-zoom-in-top" mode"out-in"><keep-alive :include"cacheviews"><!-- 一级路由 --><router-view ></router-view></keep-aliv…

【杂谈】关于Huawei S5720巡检过程中的“CPCAR_DROP_MPU”告警

背景 本年度二季度为某客户巡检数通设备&#xff08;Huawei居多&#xff09;时&#xff0c;在某楼宇汇聚设备上display logbuffer发现存在大量告警&#xff0c;如下&#xff1a; Jun 8 2023 15:34:24 AGG-S5720-1 %%01INFO/4/SUPPRESS_LOG(l)[58]:Last message repeated 2 t…

chatgpt赋能python:Python获取某个值的方法

Python获取某个值的方法 在Python编程中&#xff0c;有时候我们需要从数据集或者对象中获取某个特定的值&#xff0c;这时候我们可以使用Python提供的各种方法来实现。本文将介绍几种常见的方法&#xff0c;并且说明它们的优劣和使用场景。 使用索引获取值 在Python中&#…

dirsearch

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 介绍例如 安装使用场景01 XXX 介绍 dirsearch&#xff0c;是一个目录扫描工具&#xff0c;在目录扫描领域是一个强大的竞争对手&#xff0c;具有多线程、代理支持、…

MySQL数据库学习笔记一

MySQL优点 使用数据库&#xff1a; 使用show来显示存在的数据库、表、列 select语句 排序&#xff1a;Order by 降序排序&#xff1a; where语句 通配符&#xff1a;%&#xff0c;_ 正则表达式 正则表达式之 . 字符&#xff1a; Like和正则表达式regexp的区别 插入多行

ffmpeg学习日记121-视频-各种图片转yuv

Author: wencoo Blog&#xff1a;https://wencoo.blog.csdn.net/ Date: 24/04/2023 Details:文章目录 实现功能查看转换结果参考 图片的解码方式和视频解码是一样的&#xff0c;因为视频是由一副一副的图片组成的&#xff0c;只不过视频的帧会前后参考&#xff0c;而图片是单独…

OCR本地搜题(无需网络)

1、先下载好所需要的软件 2、安装.NET&#xff08;必须&#xff0c;否则无法使用&#xff09; 安装步骤&#xff1a;全部默认。 3、找到ScreenshotsSearch下的狗头 4、界面如下 5、点击 题库后&#xff0c;先清空题库 6在点击下方用Excel打开题库&#xff08;选择好题库文件&a…

点击左侧 - 右侧页面对应刷新(iframe)

在工作方面的需求&#xff0c;需要实现点击左侧栏目&#xff0c;右侧的内容对应更改。 这里&#xff0c;我运用了iframe来实现这个功能&#xff01;&#xff08;布局的话,使用了flex弹性布局&#xff09; 完整效果图。 左侧导航显示代码&#xff1a; <div class"lef…

菜鸡shader:L4三色环境光原理妙用并在ue4中实现

三色环境光的拓展运用 我的上一篇博客写了关于三色环境光的原理&#xff0c;这次就来简单拓展一下。最重要的核心思想其实就是取法线向量的第二个分量&#xff0c;因为它控制方法是指向xz平面的上或者下。 所以这次要用这个原来来单独摘出上层环境光&#xff0c;乘上菲涅尔&a…