leetcode上升的温度再复习-笛卡尔积(交叉连接)-日期加减函数

重新做上升的温度这一题的时候,看到之前很多的题解,这里结合一些题解看看有什么能学到的,其实这一题我现在返回来看,刚开始看依旧没有思路,还是看了题解才有想法。

理一下学习的思路:这一题就是需要通过连接解题,连接两张相同的表 ,w1表作为今天的表 利用w1表的日期比w2表的日期大一天连接,w2表作为昨天的表,也就是今天连接昨天。

然后借着这一题,学习一下几个针对日期加减的函数。我还是放上这个题目吧,万一后来的人看不懂这个题。

1.下面是我原来的题解,也是那么多题解里面的第一个题解,现在回去看真的觉得是多次一举,这样的题解就是在装逼啊,根本没必要。

select id from (select id,temperature,recordDate,lag(temperature)over(order by recordDate) as last_temperature,lag(recordDate)over(order by recordDate) as last_date from Weather) as a where temperature>last_temperature and datediff(recordDate,last_date)=1;

2.这是我犯下的一个错误

我理解题目和题解之后就想出来下面的语句,但是提交之后就是不正确,然后我多看了几个别人的题解发现也有人犯了这个错误,你也看一下有没有什么问题呢?

select w1.id from weather w1, weather w2 where w1.recordDate=w2.recordDate+1 and w1.temperature>w2.temperature;

其实问题就是单独对日期加减是有可能出错的,原因如下

3.两种题解其实是一样的

以下的两种操作是一样的,为什么呢?你理解笛卡尔积就明白了,根据我之前的博客https://blog.csdn.net/qq_45828965/article/details/134642986?spm=1001.2014.3001.5502,里面有一个我百度到别人的答案,就是因为笛卡尔连接也就是交叉连接有两种表达方式,下面两种题解就是。

select w1.id from weather w1, weather w2 where datediff(w1.recordDate,w2.recordDate)=1 and w1.temperature>w2.temperature;

select w1.id from weather w1 join weather w2 on datediff(w1.recordDate,w2.recordDate)=1 where w1.temperature>w2.temperature;

如果还不理解的话,看下图。

4.datediff()使用方法

Datediff(begin日期,end日期)这个最简单了,而且感觉很常用啊

5.adddate()使用方法 这是mysql的函数

下面的图片中讲的很好:

1)首先adddate()有两种表述方法:date_add()和adddate()

2)其次里面的参数也有两种表述方法:

(日期,interval 差值,单位)=你想要的日期(interval这个关键字,中文代表间隔)

(日期,天数)=你想要的日期

6.timestampdiff()使用方法

这个函数有三个参数,timestampdiff(单位如DAY,begin日期,end日期)=差值

1)其中单位有如下选择:

2)日期有两种数据类型,date和datetime;而且还可以混合,至于可以怎么混合,需要的可以去找找,我这里将基本内容就行,到时候用到了自然会百度。

其实这个在这一道题完全没必要,很明显这里的日期最小也是日,很分秒这种的单位没有关系啊。但是这是为了学习一下这个函数。

7.dateadd()使用方法 注意这是sql server的函数

dateadd(单位,差值,日期)=你想要的日期

单位有如下的选择

总结一下

1)复习了交叉连接,自连接

2)日期不能擅自加减要斟酌

3)四个关于日期加减的函数:datediff(),timestamp(),adddate(),最后一个dateadd()是sql server的函数碰到了就一起放上来

4)温故而知新,之前菜鸟看到的东西就是不够多!!

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

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

相关文章

Docker部署wordpress和Jenkins

准备机器: 192.168.58.151 (关闭防火墙和selinux) 安装好docker服务 (详细参照:http://t.csdnimg.cn/usG0s 中的国内源安装docker) 部署wordpress: 创建目录: [rootdocker ~]# mkdi…

Unity 使用Input.GetAxis(“Horizontal/Vertical“)移动鼠标没反应的原因

在Unity中,当我们使用Input.GetAxis("Horizontal")和Input.GetAxis("Vertical")通过鼠标移动的返回数值以控制物体移动或其它操作时,却没有反应,令人费解。 首先我们获取返回数值并打印: float horizontal …

TensorFlow神经网络中间层的可视化

TensorFlow神经网络中间层的可视化 TensorFlow神经网络中间层的可视化1. 训练网络并保存为.h5文件2. 通过.h5文件导入网络3. 可视化网络中间层结果(1)索引取层可视化(2)通过名字取层可视化 TensorFlow神经网络中间层的可视化 1. …

Redis系列之简单实现watchDog自动续期机制

在分布锁的实际使用中,可能会遇到一种情况,一个业务执行时间很长,已经超过redis加锁的时间,也就是锁已经释放了,但是业务还没执行完成,这时候其它线程还是可以获取锁,那就没保证线程安全 项目环…

完美解决labelimg xml转可视化中文乱码问题,不用matplotlib

背景简述 我们有一批标注项目要转可视化,因为之前没有做过,然后网上随意找了一段代码测试完美(并没有)搞定,开始疯狂标注,当真正要转的时候傻眼了,因为测试的时候用的是英文标签,实…

基于linux系统的Tomcat+Mysql+Jdk环境搭建(三)centos7 安装Tomcat

Tomcat下载官网: Apache Tomcat - Which Version Do I Want? JDK下载官网: Java Downloads | Oracle 中国 如果不知道Tomcat的哪个版本应该对应哪个版本的JDK可以打开官网,点击Whitch Version 下滑,有低版本的,如…

Flutter实现Android拖动到垃圾桶删除效果-Draggable和DragTarget的详细讲解

文章目录 Draggable介绍构造函数参数说明使用示例 DragTarget 介绍构造函数参数说明使用示例 DragTarget 如何接收Draggable传递过来的数据? Draggable介绍 Draggable是Flutter框架中的一个小部件,用于支持用户通过手势拖动一个子部件。它是基于手势的一…

知识付费小程序开发:技术实践示例

随着知识付费小程序的兴起,让我们一起来看一个简单的示例,使用Node.js和Express框架搭建一个基础的知识付费小程序后端。 首先,确保你已经安装了Node.js和npm。接下来,创建一个新的项目文件夹,然后通过以下步骤创建你…

适用于 Windows 和 Mac 的 10 款最佳照片恢复软件(免费和付费)

丢失照片很容易。这里点击错误,那里贴错标签的 SD 卡,然后噗的一声,一切都消失了。值得庆幸的是,在技术领域,你可以纠正一些错误。其中包括删除数据或格式化错误的存储设备。 那么,让我们看看可用于从 SD …

[c++]—vector类___提升版(带你了解vector底层的运用)

我写我 不论主谓宾 可以反复错 🌈vector的介绍 1.vector是表示可变大小数组的序列容器2.就像数组一样,vector也采用的连续存储空间来存储元素,也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组&…

工业性能CCD图像处理+

目录 硬件部分 ​编辑 软件部分 CCD新相机的调试处理(更换相机处理,都要点执行检测来查看图像变化) 问题:新相机拍摄出现黑屏,图像拍摄不清晰,(可以点击图像,向下转动鼠标的滚轮&#xff08…

基于linux系统的Tomcat+Mysql+Jdk环境搭建(一)vmare centos7 设置静态ip和连接MobaXterm

特别注意,Windows10以上版本操作系统需要下载安装VMware Workstation Pro16及以上版本,安装方式此处略。 (可忽略 my*** 记录设置的vamare centos7 账号root/aaa 密码:Aa123456 ) 1、命令行和图形界面切换 如果使用的是VMware虚拟机&…

金智融门户(统一身份认证)同步数据至钉钉通讯录

前言:因全面使用金智融门户和数据资产平台,二十几个信息系统已实现统一身份认证和数据同步,目前单位使用的钉钉尚未同步组织机构和用户信息,职工入职、离职、调岗时都需要手工在钉钉后台操作,一是操作繁琐,二是钉钉通讯录更新不及时或经常遗漏,带来管理问题。通过金智融…

CAD 审图意见的导出

看图的时候喜欢在图上直接标注意见,但是如果还要再把意见一行一行的导出到word里面就很麻烦,在网上看了一个审图软件,报价要980,而且那个审图意见做的太复杂了。 我的需求就是把图上标的单行文字和多行文字直接导出来就行&#x…

debug点f8step over会进入class文件

File->settings->Bulid.Executiong.Deployment->Debugger->Stepping 取消如图对钩即可

二十七、读写文件

二十七、读写文件 27.1 文件类QFile #include <QCoreApplication>#include<QFile> #include<QDebug>int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);QFile file("D:/main.txt");if(!file.open(QIODevice::WriteOnly | QIODe…

three.js模拟太阳系

地球的旋转轨迹目前设置为了圆形&#xff0c;效果&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div c…

idea第一次提交到git(码云)

1.先创建一个仓库 2.将idea和仓库地址绑定 2.将idea和仓库地址绑定

CentOS 7系统加固详细方案SSH FTP MYSQL加固

一、删除后门账户 修改强口令 1、修改改密码长度需要编译login.defs文件 vi /etc/login.defs PASS_MIN_LEN 82、注释掉不需要的用户和用户组 或者 检查是否存在除root之外UID为0的用户 使用如下代码&#xff0c;对passwd文件进行检索&#xff1a; awk -F : ($30){print $1) …

『K8S 入门』二:深入 Pod

『K8S 入门』二&#xff1a;深入 Pod 一、基础命令 获取所有 Pod kubectl get pods2. 获取 deploy kubectl get deploy3. 删除 deploy&#xff0c;这时候相应的 pod 就没了 kubectl delete deploy nginx4. 虽然删掉了 Pod&#xff0c;但是这是时候还有 service&#xff0c…