mysql 多条记录选择一套_2020-11-09-Mysql(练习题第一套)

遗留问题 select语句中的别名问题 group by 中的别名问题

# sql

-表 FACT_DAY_SC

-字段 DEPT_ID varchar(20) 电厂

TJSJ_DATE DATE 日期

FSL number 日发电量

create table FACT_DAY_SC(

DEPT_ID varchar(20),

TJSJ_DATE DATE,

FSL LONG

);

insert into FACT_DAY_SC values ('10001','2020-12-01',113);

insert into FACT_DAY_SC values ('10001','2019-02-01',1233);

insert into FACT_DAY_SC values ('10001','2020-03-01',1453);

insert into FACT_DAY_SC values ('10002','2020-04-01',113);

insert into FACT_DAY_SC values ('10001','2020-05-01',563);

insert into FACT_DAY_SC values ('10002','2020-06-01',4);

insert into FACT_DAY_SC values ('10001','2020-07-01',567);

insert into FACT_DAY_SC values ('10002','2020-08-01',4567);

insert into FACT_DAY_SC values ('10001','2020-09-01',1232);

insert into FACT_DAY_SC values ('10001','2020-10-01',456);

insert into FACT_DAY_SC values ('10001','2020-07-23',678);

insert into FACT_DAY_SC values ('10003','2020-09-2',1247);

insert into FACT_DAY_SC values ('10001','2020-01-2',579);

insert into FACT_DAY_SC values ('10003','2019-01-3',1257);

insert into FACT_DAY_SC values ('10001','2019-01-11',1269);

insert into FACT_DAY_SC values ('10003','2020-01-4',4793);

insert into FACT_DAY_SC values ('10003','2019-01-5',47234);

insert into FACT_DAY_SC values ('10003','2020-04-04',4793);

insert into FACT_DAY_SC values ('10003','2018-01-19',4456783);

insert into FACT_DAY_SC values ('10003','2020-12-01',47123);

1.写出SQL计算出每个单位,每个月的最高发电量

//问题:分析是否按照年来分类

// select substr(cast('2020-01-09' as Date ) , 1,7 ); substr() 函数能截取日期

//substr(string string, int a, int b);函数的理解

//string 需要截取的字符串

a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)

b 要截取的字符串的长度

select

DEPT_ID,

substr(DEPT_ID,,6,2) as result ,

max(FSL)

from FACT_DAY_SC

group by DEPT_ID , substr(TJSJ_DATE,6,2) ;

2.求取10001电厂,每日的最高发电量(显示到目前为只每日最高发电量)

//用聚合函数还是使用窗口函数

//好像不行???? 发现问题??? 我用的是long比较的是字典顺序?????

select

*,

max(FSL) over(ORDER BY TJSJ_DATE) as num

from

FACT_DAY_SC

where DEPT_ID ='10001';

//这个是比较的是前后日期最大的日电量

select

DEPT_ID,

TJSJ_DATE,

if(result > FSL , result , FSL) as '日最大用量'

from

(

select

DEPT_ID,

TJSJ_DATE,

FSL,

lead(FSL,1) over( order by FSL ) as result

from

(

select

DEPT_ID,

TJSJ_DATE,

FSL

from FACT_DAY_SC

where DEPT_ID = '10001'

order by TJSJ_DATE

) t1

) t2

3.基于2查询每次打破日最大用电量的日期和发电量

select

TJSJ_DATE,

FSL

from

(

select

DEPT_ID,

TJSJ_DATE,

FSL,

max(FSL) over(order by FSL ) as max_result

from

FACT_DAY_SC

where DEPT_ID = '10001'

) t1

where max_result = t1.FSL

4.查询日期2019-01-11日发电量topN 的电厂

//知识点 序列函数考虑并序

select

DEPT_ID

dense_rank() over(order by FSL )

from FACT_DAY_SC

where TJSJ_DATE = '2019-01-11'

5.计算本年有多少天的SQL?

//知识点回顾SQL中的日期函数 注意使用 cast(' 2020-09-09' as DATE)

datediff(date ,date)+1 比较两个日期之间相差多少天

date_add(date,number) 日期加number

date_sub(date ,number) 日期减number

select datediff('2020-12-31','2020-01-01') +1

6.计算 2019-01月 及 电厂10001 中天数超过平均发电量的天数

//知识点 使用切割函数 substr() 分组

//发现不允许这样用使用子查询

select

count(FSL > avg(FSL))

from

FACT_DAY_SC

where DEPT_ID = '1001' and substr(TJSJ_DATE ,1,7) = '2020-09'

// substr和子查询

select

count(FSL >(select

avg(FSL)

from

FACT_DAY_SC

where DEPT_ID = '10001'

group by DEPT_ID) )

from

FACT_DAY_SC

where DEPT_ID = '10001' and substr(TJSJ_DATE ,1,7) = '2020-09'

b4321f52f5ce

image.png

8.指标分析

create table TEST(

DEP_CODE varchar(10),

ITEM_CODE varchar(10),

ITEM_VALUE int

);

insert into TEST values ('单位一','A',100);

insert into TEST values ('单位二','A',200);

insert into TEST values ('单位一','B',300);

insert into TEST values ('单位二','B',300);

insert into TEST values ('单位一','C',350);

insert into TEST values ('单位二','C',300);

select

DEP_CODE,

ITEM_CODE,

ITEM_VALUE

from

TEST

UNION ALL

select

DEP_CODE,

'D' as ITEM_CODE,

sum(if(ITEM_CODE = 'C',-ITEM_VALUE,ITEM_VALUE)) as ITEM_VALUE

from

TEST

group by DEP_CODE

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

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

相关文章

wamp的mysql触发器教程_wamp里的mysql怎么做出这个

这个表怎么做这个是phpmyadmin,他是一个独立的程序,并不是wamp独有的,你也可以独立下载phpmyadmin来使用。首先,phpmyadmin你可以把他看作是一个php写的mysql管理工具。前端页面实际上就是HTML,和一般的网页没有什么区…

wx轮播图接口学习用json格式_零基础学小程序008----列表和轮播图的实现,小程序解析json数据...

点击下面网址进入系列教程上一节带领大家实现领简单的计算器,这节来带领大家学习小程序列表功能。本节知识点1,定义本地json文件2,本地文件引入3,小程序列表渲染实现4,解析本地json(为解析网络json做准备)学习之前先来…

云服务器怎么装mysql_云服务器(windows环境)安装mysql图文教程

1、首先进入的是安装引导界面2、然后进入的是类型选择界面,这里有3个类型:Typical(典型)、Complete(完全)、Custom(自定义)。这里建议选择“完全”(Complete)安装,这样可以自定义选择MySQL的安装目录,然后点“Next”下一步&#x…

oracle mysql分页查询_Oracle与MySQL的分页查询sql语句格式实例讲解

Oracle使用rownum进行分页&#xff1a;SELECT *FROM (SELECT a.*, ROWNUM rnFROM (SELECT * FROM table_name) aWHERE ROWNUM < pageIndex * pageSize)WHERE rn > (pageIndex - 1) * pageSize其中&#xff0c;pageIndex是页码&#xff0c;pageSize是每页的条数MySQLMySQL…

阿里mysql 二进制_Mysql binlog 之阿里canal

1、What is Canal&#xff1f;canal [kənl]&#xff0c;中文翻译为 水道/管道/沟渠/运河&#xff0c;主要用途是用于 MySQL 数据库增量日志数据的订阅、消费和解析&#xff0c;是阿里巴巴开发并开源的&#xff0c;采用Java语言开发&#xff1b;历史背景是早期阿里巴巴因为杭州…

java 基本类型 引用类型_Java中的基本类型和引用类型变量的区别

基本类型&#xff1a;基本类型自然不用说了&#xff0c;它的值就是一个数字&#xff0c;一个字符或一个布尔值。引用类型&#xff1a;是一个对象类型&#xff0c;值是什么呢&#xff1f;它的值是指向内存空间的引用&#xff0c;就是地址&#xff0c;所指向的内存中保存着变量所…

git 怎么提交忽略文件夹_git 设置忽略文件提交的几种方式

在使用git进行项目管理的时候,有时候一些安装包之类,或者自己本地项目使用的一些编译文件,在不需要提交到远程仓库时,可以通过以下几种方式设置忽略提交,包括文件夹和单个文件.之前自己项目里面采用了第二种方法进行了设置,但是时间久远竟然忘记了.....,导致我有一些文件始终无…

java获取行号_java – 如何获取一个方法的行号?

我想做同样的事情,经过一些研究,就解决了javassist.您将需要添加javassist(我使用版本3.15.0-GA).给定以下类确定“x”方法的位置.方法名称“x”是硬编码的,但是如果你和我在一样的船上,反射并不困难,所以我相信你可以得到一个方法名称列表,然后下面将让你得到行号的方法&#…

java测试类和类_【测试开发】从测试角度看Java异常类(错误和异常区别介绍)

在 Java 中&#xff0c;所有的异常都有一个共同的祖先 Throwable(可抛出)。Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。Throwable 有两个重要的子类&#xff1a;Exception(异常)和 Error(错误)&#xff0c;二者都是 Java 异常处理的重要子类…

mysql 学生成绩等级_JSP+SSM+Mysql实现的学生成绩管理系统

项目简介本系统是基于JSPSSMMysql实现的学生成绩管理系统。主要实现的功能有教师管理、学生管理、课程管理、学生成绩管理。难度等级&#xff1a;中等技术栈编辑器Eclipse Version: 2020-03 (4.15.0)前端技术基础&#xff1a;htmlcssJavaScript框架&#xff1a;JQueryH-ui后端技…

java ajax 导出excel文件_springMVC(4)---生成excel文件并导出

springMVC(4)---生成excel文件并导出在开发过程中&#xff0c;需要将数据库中的数据以excel表格的方式导出。首先说明。我这里用的是Apache的POI项目&#xff0c;它是目前比较成熟的HSSF接口&#xff0c;用来处理Excel对象。其实POI不仅仅只能处理excel&#xff0c;它还可以处理…

java swing 模拟发牌_用java设计一个发牌程序

展开全部// 发牌程序。import java.awt.*;import java.awt.event.*;import javax.swing.*;public class CardBuffer //加互斥锁的缓冲区{private int value;private boolean isEmpty true; //value是否为空的信号量private int order0; //信号量&#xff0c;e68a8462616964757…

python一节课多久_第一节课 python简介

标签&#xff1a;一、python特性概要1. Python是解释性语言。我们和c比较一下。2. Python特性总结&#xff1a;字节码、动态、缩进2.1 字节码2.2 动态语义 在赋值时确定数据类型2.3 缩进3. Python之禅解释性语言的内部机制&#xff0c;在运行脚本之前&#xff0c;得到结果之后&…

aspose转pdf横版_aspose实现Office转Pdf

标签&#xff1a;aspose实现Office转Pdf关键代码&#xff1a;jar包&#xff1a;aspose-words-14.6.0.jaraspose-cells-10.8.jaraspose.slides-14.4.0.jaraspose-diagram-2.1.0.jarprotected void realTransform(InputStream in, OutputStream out) throws IOException{String l…

java -jar 内存溢出_JAVA系统启动栈内存溢出-StackOverflowError

JAVA系统启动栈内存溢出-StackOverflowError线上服务器启动报错日志如下&#xff1a;Caused by: java.lang.IllegalStateException: Unable to complete the scan for annotations for web application [] due to a StackOverflowError. Possible root causes include a too lo…

java培训就是害人的_[Java教程]粗心害死人啊,我的天。

[Java教程]粗心害死人啊&#xff0c;我的天。02016-08-16 22:00:551 (上述代码是改过后正确的)今天在用ajax的时候&#xff01;出现了愚蠢的错误&#xff01;由于括号太多加上自己又粗心了&#xff01;把最后的第68行的发送请求写到了第63行的大括号里变了~&#xff01;导致我找…

Java写文件导致io过高_161108、Java IO流读写文件的几个注意点

平时写IO相关代码机会挺少的&#xff0c;但却都知道使用BufferedXXXX来读写效率高&#xff0c;没想到里面还有这么多陷阱&#xff0c;这两天突然被其中一个陷阱折腾一下&#xff1a;读一个文件&#xff0c;然后写到另外一个文件&#xff0c;前后两个文件居然不一样&#xff1f;…

java see 方法_Java 反射常用方法

类名用途Class类代表类的实体&#xff0c;在运行的Java应用程序中表示类和接口Field类代表类的成员变量(成员变量也称为类的属性)Method类代表类的方法Constructor类代表类的构造方法Class类Class代表类的实体&#xff0c;在运行的Java应用程序中表示类和接口。在这个类中提供了…

java接口测试框架搭建_接口自动化测试框架搭建

一、原理及特点参数放在XML文件中进行管理用httpClient简单封装一个httpUtils工具类测试用例管理使用了testNg管理&#xff0c;使用了TestNG参数化测试&#xff0c;通过xml文件来执行case。测试报告这里用到第三方的包ReportNG 项目组织用Maven二、准备使用工具&#xff1a;ecl…

java 树状数据算法_使用递归算法结合数据库解析成Java树形结构的代码解析

这篇文章主要介绍了使用递归算法结合数据库解析成Java树形结构的代码解析的相关资料,需要的朋友可以参考下1、准备表结构及对应的表数据a、表结构&#xff1a;create table TB_TREE(CID NUMBER not null,CNAME VARCHAR2(50),PID NUMBER //父节点)b、表数据&#xff1a;insert i…