Rising Temperature:查询比前一天气温高的天气ID

Given a Weather table, write a SQL query to find all dates' Ids with higher temperature compared to its previous (yesterday's) dates.

+---------+------------+------------------+
| Id(INT) | Date(DATE) | Temperature(INT) |
+---------+------------+------------------+
|       1 | 2015-01-01 |               10 |
|       2 | 2015-01-02 |               25 |
|       3 | 2015-01-03 |               20 |
|       4 | 2015-01-04 |               30 |
+---------+------------+------------------+
For example, return the following Ids for the above Weather table:
+----+
| Id |
+----+
|  2 |
|  4 |
+----+
SQL Schema:

Create  table  If  Not  Exists Weather ( Id  intDate  date, Temperature  int)
Truncate  table Weather
insert  into Weather ( IdDate, Temperature)  values ( '1''2015-01-01''10')
insert  into Weather ( IdDate, Temperature)  values ( '2''2015-01-02''25')
insert  into Weather ( IdDate, Temperature)  values ( '3''2015-01-03''20')
insert  into Weather ( IdDate, Temperature)  values ( '4''2015-01-04''30')

思路:SELECT Weather.Id as 'Id' FROM Weather JOIN Weather w ON DATEDIFF(Weather.Date,w.Date) = 1 AND Weather.Temperature > w.Temperature


可以使用 `ephem` 模块来计算一年每一天的日长。首先,确保你已经安装了 `ephem` 模块,如果没有安装可以使用 `pip install ephem` 命令进行安装。 下面是一个示例代码,可以计算指定地点一年中每一天的日长: ```python import ephem # 设置观测地点 observer = ephem.Observer() observer.lat = '40.7128' # 纬度(例如:纽约市的纬度) observer.lon = '-74.0060' # 经度(例如:纽约市的经度) # 计算一年中每一天的日长 for d in range(1, 366): date = f'2022/{d}/1' # 指定日期(例如:2022年的每一天) sun = ephem.Sun() sun.compute(observer.date = date) sun_rise = observer.previous_rising(sun).datetime() # 日出时间 sun_set = observer.next_setting(sun).datetime() # 日落时间 day_length = sun_set - sun_rise # 日长 print(f"日期:{date},日出时间:{sun_rise},日落时间:{sun_set},日长:{day_length}") ``` 在代码中,我们首先设置观测地点的纬度和经度,然后使用循环遍历一年中的每一天。对于每一天,我们使用 `ephem.Sun()` 来表示太阳,并使用 `observer.date` 设置观测日期。然后,通过 `observer.previous_rising(sun)` 和 `observer.next_setting(sun)` 分别计算日出和日落时间。最后,通过计算日出和日落时间之间的差异,我们可以得到日长。 请注意,代码中设置的日期是 2022 年,你可以根据需要修改日期并适应自己的地点。还请注意,日长是以时间间隔的形式表示的,你可以进一步处理它以得到更方便的格式(例如小时数)。 希望这可以帮助到你!如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值