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…

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

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

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

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

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

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

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

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

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; //信号量,e68a8462616964757…

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

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

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

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

java工厂模式 uml_深入浅出设计模式-简单工厂模式

模式定义简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式定义了一个创建对象的类,由这个类来封装实例化对象的行为。设计原则遵循的原则:依赖倒置原则迪…

java技术难点_Java核心技术第四章----对象与类重难点总结

一、类之间的关系类和类之间的关系,耦合度从高到低:is -a。继承、实现has-a。组合、聚合、关联user-a。依赖。要求是:高内聚、低耦合。继承(“is-a”)继承(Inheritance),即“is-a”关系,是一种用于表示特殊与一般关系的…

java日志级别的作用_Java系统日志级别对性能的影响性

先介绍下java系统的日志日志框架:是一种日志接口,不负责具体的日志输出形式(有点类似于JDBC),可以灵活的切换日志输出形式。常见的日志框架有slf4j、jcl,只提供Logger、LoggerFactory等接口日志系统:是应用实际使用的日…

java用链表做学生系统_C语言链表实现学生管理系统

本文实例为大家分享了C语言链表实现学生管理系统的具体代码,供大家参考,具体内容如下#include#include#include#include#include#includeusing namespace std;typedef struct ndoe{char id[10];char name[10];char sex[3];char num[10];struct node *nex…

mysql 全文本检索的列_Mysql 全文本检索

mysql 全文索引注意 并非所有的引擎都支持 全文检索mysql最常用的引擎 INnodb 和 myisam 后者支持全文检索 前者不支持创建表的时候指定要检索列 CREATE TABLE TEST_FULLTEXT(note_id int not null auto_increment,note_text text null, primaty key(note_id),FULLTEXT(note_te…

java 的对象类用_java基础(第零篇)对象与类

前言:本文讲述java中对象与类的一些概念。包括对象与类的有关概念,类间五种关系,类的访问权限等。在java中,一切都可以用对象来描述,操作对象的标识符只不过是对象的一个引用,一个对象可以有多个引用&#…

buffer java nio_Java NIO深入理解Buffer(缓冲区)

前言Github:https://github.com/yihonglei/java-allProject:java-nio一 Buffer概述Java NIO中的Buffer用于和NIO通道进行交互。数据是从通道读入缓冲区,从缓冲区写入到通道中的。缓冲区本质上是一块可以写入数据,然后可以从中读取…

java robot键值_Java:使用Robot类模拟键盘, 以Alt码方式输出汉字

java.awt.Robot类Java提供java.awt.Robot类来模拟操作键盘和鼠标, 下面是一个简单的demopublic static void keyPressByInt(Robot r,int key, int time){r.keyPress(key);r.keyRelease(key);if (time > 0) {r.delay(time);}}public static void main(String[] args) throws …

java调用 火眼臻睛,火眼臻睛车牌识别SDK评测

【CPS中安网 cps.com.cn】CPS LAB总评:用专业角度解读产品--CPS评测中心对火眼臻睛车牌识别SDK进行了全面评测,火眼臻睛车牌识别SDK在综合识别率、车牌定位成功率、大角度下的识别率、夜间环境下的识别率、极端环境下的识别率、支持的最小车牌像素宽度等测试表现,都位于行业前列…

java各层级限流对比,面试官说:来谈谈限流-从概念到实现,一问你就懵逼了?...

后端服务的接口都是有访问上限的,如果外部qps或并发量超过了访问上限会导致应用瘫痪。所以一般都会对接口调用加上限流保护,防止超出预期的请求导致系统故障。从限流类型来说一般来说分为两种:并发数限流和qps限流,并发数限流就是限制同一时刻…