首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的内连接在比较列时不起作用?

问为什么我的内连接在比较列时不起作用?
EN

Stack Overflow用户
提问于 2021-03-13 17:00:49
回答 4查看 118关注 0票数 0

编写一个SQL查询来查找所有日期的id,与它之前的日期(昨天)相比具有更高的温度。

参考:https://leetcode.com/problems/rising-temperature/

下面是我的代码:

代码语言:javascript
复制
SELECT L.id AS id
FROM weather AS p 
INNER JOIN weather AS L ON p.recordDate = L.recorddate - 1
WHERE p.temperature < l.temperature

我不知道我的答案出了什么问题,有人能帮我吗?

EN

回答 4

Stack Overflow用户

发布于 2021-03-13 17:30:47

注意sql的dateadd函数。如果L.recorddate是正确的日期或日期时间,则在进行比较时需要使用sql的DateAdd函数,而不是像p.recordDate=dateadd( L.recorddate,-1,l.recorddate)那样使用天-1。

票数 0
EN

Stack Overflow用户

发布于 2021-03-13 17:34:50

LAG函数为您完成了这项工作:

代码语言:javascript
复制
 WITH a AS(
    SELECT *, LAG(temperature) OVER(ORDER BY recordDate) PrevTmp FROM weather 
    )
    SELECT * FROM a
    WHERE a.PrevTmp<temperature
票数 0
EN

Stack Overflow用户

发布于 2021-03-13 17:40:14

使用Lag()

代码语言:javascript
复制
select id from (
    select id, temperature, Lag(temperature,1) over (order by recorddate) lastTemp
    from weather
)w
where temperature>LastTemp
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66611699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档