iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >sql语句中临时表使用实例详解
  • 899
分享到

sql语句中临时表使用实例详解

SQL临时表使用SQL临时表 2023-02-16 12:02:10 899人浏览 薄情痞子
摘要

目录一、临时表实现分步处理1.概述2.实例2.1表格结构2.2需求2.3sql语句2.4sql语句解析二、临时表实现分层处理1、概述2、实例2.1表结构2.2需求2.3sql语句2.4sql语句解析一、临时表实现分步处理

一、临时表实现分步处理

1.概述

当需要的结果需要经过多次处理后才能最终得到我们需要的结果时,就可以使用临时表,这里临时表就起到了一个中间处理的作用,实现了分步处理,简化了问题。

2.实例

2.1表格结构

pln_order_pool_detail(表名)

sql语句中临时表使用实例详解

sql语句中临时表使用实例详解

2.2需求

需要得到订单平均交付周期、最大交付周期、最小交付周期,为了实现这一需求,首先我们要求出每个订单的交付周期,其次我们需要将这些订单的交付周期求其平均值。

2.3sql语句

SELECT
    AVG( leadTime ) avgLeadTime,
    MAX( leadTime ) maxLeadTime,
    MIN( leadTime ) minLeadTime
FROM
    ( SELECT DATEDIFF(reality_deliver_time,create_time) AS leadTime FROM  pln_order_pool  WHERE order_state = 'finish' ) a

2.4sql语句解析

其中 SELECT DATEDIFF(reality_deliver_time,create_time) AS leadTime FROM  pln_order_pool  WHERE order_state = 'finish' 是求出每个订单的交付周期作为临时表,每个订单的交付周期即状态(order_state)为'finish'的订单的实际交付时间(reality_deliver_time)减去该订单的创建时间(create_time)

DATEDIFF(reality_deliver_time,create_time):该函数表示实际交付日期(reality_deliver_time)与创建日期(create_time)的间隔,且结果是以天数进行返回

 AVG( leadTime ):将临时表中的交付周期通过AVG函数求出平均交付周期

MAX( leadTime):将临时表中的交付周期通过MAX函数求出最大交付周期

MIN( leadTime):将临时表中的交付周期通过MIN函数求出最小交付周期

二、临时表实现分层处理

1、概述

在实际开发中经常会碰到一个字段下存储的结果不同,而我又需要对这两个结果进行处理得到最终的结果,此时如果没有临时表我们就可能需要写两个sql语句分别得到结果,然后在后端进行运算得到最终需要的结果。

2、实例

也许上面的概述表述并不清楚,现在用一个实例来说明。

sql语句中临时表使用实例详解

像这样的一个表结构,我想要计算2022年8月9号这一天的计划完成率,那就需要计算该日期的计划数和计划完成数的比值,也就是计算该日期的实出对应的数量与该日期的计划对应的数量的比值,但是上面的表结构中计划与实出都在type一个字段下,我又该如何将where条件设置为type等于“计划”求出计划数,同时又将where条件设置为type等于“实出”求出实际完成的数量呢?

2.1表结构

plan(表名)

sql语句中临时表使用实例详解

2.2需求

求出2022年8月9号一天的计划完成率

2.3sql语句

SELECT
	planNums,
	finishNums,
	IFNULL( ROUND( finishNums / planNums * 100, 2 ), 0 ) finishRate 
FROM
	( SELECT SUM( num ) planNums FROM plan WHERE type = '计划' AND date = '2022-08-09') a,
	( SELECT SUM( num ) finishNums FROM plan WHERE type = '实出' AND date = '2022-08-09') b

2.4sql语句解析

针对上述的问题,我们使用临时表就可以完美的解决,根据条件的不同我们建立两个临时表,分别记录当天的计划总数和当天的实际完成的数量,实现分层处理,最后我们再将临时表中的数据进行运算就可以得到当天的计划完成率。

SELECT SUM( num ) planNums FROM plan WHERE type = '计划' AND date = '2022-08-09'

 此句求出2022年8月9号的计划总数临时表

SELECT SUM( num ) finishNums FROM plan WHERE type = '实出' AND date = '2022-08-09'

此句求出2022年8月9号的实际完成总数临时表

IFNULL(ROUND(finishNums/planNums*100,2),0):此函数用于排除临时表中计划总数为null的情况,若ROUND(finishNums/planNums*100,2)为空,则返回值为0,否则返回值就是ROUND(finishNums/planNums*100,2)

ROUND(finishNums/planNums*100,2):此函数为四舍五入函数,将finishNums/planNums*100计算的结果保留两位小数

注意:临时表一定需要起别名,否则就会报错

到此这篇关于sql语句中临时表使用方法的文章就介绍到这了,更多相关sql临时表使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: sql语句中临时表使用实例详解

本文链接: https://www.lsjlt.com/news/196337.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sql语句中临时表使用实例详解
    目录一、临时表实现分步处理1.概述2.实例2.1表格结构2.2需求2.3sql语句2.4sql语句解析二、临时表实现分层处理1、概述2、实例2.1表结构2.2需求2.3sql语句2.4sql语句解析一、临时表实现分步处理...
    99+
    2023-02-16
    SQL临时表使用 SQL临时表
  • Oracle 临时表空间SQL语句的实现
    目录临时表空间概念以下总结了关于 Oracle 数据库临时表空间的相关 SQL 语句: Oracle 临时表空间创建和添加数据文件: 查看当前默认临时表空间: 查询temp表空间使用...
    99+
    2022-11-12
  • SQL server 中怎样使用临时表
    本篇文章给大家分享的是有关SQL server 中怎样使用临时表,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。举例说明一下比较清晰些,先来看下...
    99+
    2022-10-18
  • SQL Server中使用表变量和临时表
    一、表变量 表变量在SQL Server 2000中首次被引入。 表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和C...
    99+
    2022-11-13
  • MySQL临时表的使用方法详解
    目录1. 写在前面的话2. 临时表的使用2.1 创建一个只存放亚洲国家信息的临时表2.1.1 创建临时表2.1.2 向临时表里写数据2.2 在查询过程中直接创建临时表2.3 查询临时表中的数据2.4 删除临时表3. 以上...
    99+
    2022-09-18
  • MySQL中临时表的使用示例
        这两天事情稍微有点多,公众号也停止更新了几天,结果有读者催更了,也是,说明还是有人关注,利己及人,挺好。     今天分享的内容是MySQL中的临时...
    99+
    2022-05-22
    MySQL 临时表 MySQL
  • PostgreSQL实时查看数据库实例正在执行的SQL语句实例详解
    目录一、查询当前正在执行所有SQL语句二、判断是否存在慢查询语句三、按查询进程,杀掉慢查询释放资源四、扩展query的显示长度能展示出全部语句五、杀掉某个数据库的所有数据库连接六、导出数据库某个表七、shell脚本自动导...
    99+
    2023-01-13
    postgresql正在执行sql语句 postgresql sql语句
  • MySQL中SQL命令语句条件查询实例详解
    目录一、聚合函数二、分组查询三、连接查询四、子查询五、数据库设计三范式及E-R模型六、外键约束总结一、聚合函数 聚合函数:又叫组函数,用来对表中的数据进行统计和计算,结合group by分组使用,用于统计和计算分组数据 ...
    99+
    2022-11-08
  • MySQL中Replace语句用法实例详解
    目录前言一、replace into函数二、replace into 、insert ignore 和 insert into的区别三、replace函数总结前言 replace into平时在开发中很少用到,这次是因为...
    99+
    2022-08-08
    mysql的replace用法 mysql中replace mysql中replace语句
  • sql存储过程中临时表怎么使用
    在SQL存储过程中,可以使用临时表来存储中间结果或者临时数据。以下是使用临时表的一般步骤:1. 创建临时表:在存储过程的开始部分,使...
    99+
    2023-08-23
    sql
  • MySQL常用SQL语句及使用实例
    下文主要给大家带来MySQL常用SQL语句及使用实例,希望这些内容能够带给大家实际用处,这也是我编辑MySQL常用SQL语句及使用实例这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。关系型数据库设计...
    99+
    2022-10-18
  • sql中select语句的使用示例
    这篇文章主要介绍了sql中select语句的使用示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。SQL SELECT 语句SEL...
    99+
    2022-10-18
  • SQL语句 - 多表查询使用详细介绍
    文章目录 多表查询多表查询简介多表查询内连接多表查询外连接多表查询子查询 多表查询 多表查询简介 例如我们有一张员工表和部门表, 员工表有6条数据, 部门表表有4条数据: # 创建部门...
    99+
    2023-09-01
    sql 数据库 java
  • SQL Server中使用判断语句的实例分析
    本篇内容主要讲解“SQL Server中使用判断语句的实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL Server中使用判断语句的实例分析”吧!SQL Server判断语句(IF ...
    99+
    2023-06-20
  • Go语言中循环语句使用的示例详解
    目录一、概述1. 循环控制语句2. 无限循环二、Go 语言 for 循环1. 语法2. for语句执行过程3. 示例4. For-each range 循环三、循环嵌套1. 语法2....
    99+
    2022-11-13
  • 使用SQL语句创建实验数据库(以学生表为例)
     (1) 创建数据库stuexpm create database stuexpm   (2) 创建studentinfo表,显示studentinfo表的基本结构 use stuexpm create table studentInfo ...
    99+
    2023-10-27
    数据库 sql mysql
  • django中使用原生sql语句的示例
    这篇文章给大家分享的是有关django中使用原生sql语句的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。raw# row方法:(掺杂着原生sql和orm来执行的操作)res = ...
    99+
    2023-06-14
  • MySQL 使用SQL语句修改表名的实现
    MySQL中可以使用rename table这个SQL语句来修改表名。 rename table这个SQL语句来修改表名的基本语法是: RENAME TABLE <旧表名> TO <新表名>...
    99+
    2022-05-15
    MySQL SQL语句 修改表名
  • 如何使用SQL语句实现表的查询
    这篇文章主要介绍“如何使用SQL语句实现查询”,在日常操作中,相信很多人在如何使用SQL语句实现查询问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用SQL语句实现查询”...
    99+
    2022-10-18
  • C#实现定义一套中间SQL可以跨库执行的SQL语句(案例详解)
    目录hisql查询样例单表查询group by查询having 查询join 多表查询分页hisql 实现参数化链式查询hisql语句和链式查询混用目前数据的种类非常多,每...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作