返回介绍

solution / 2300-2399 / 2314.The First Day of the Maximum Recorded Degree in Each City / README

发布于 2024-06-17 01:03:07 字数 2019 浏览 0 评论 0 收藏 0

2314. 每个城市最高气温的第一天

English Version

题目描述

表: Weather

+-------------+------+
| Column Name | Type |
+-------------+------+
| city_id   | int  |
| day     | date |
| degree    | int  |
+-------------+------+
(city_id, day) 是该表的主键(具有唯一值的列的组合)。
该表中的每一行都包含某一天某个城市的天气程度。
所有的学位都是在 2022 年获得的。

 

编写解决方案,找出每个城市中有最高温度记录的日子。如果同一城市多次记录最高气温,则返回其中最早的一天。

返回按 city_id 升序排序 的结果表。

查询结果格式示例如下。

 

示例 1:

输入: 
Weather 表:
+---------+------------+--------+
| city_id | day    | degree |
+---------+------------+--------+
| 1     | 2022-01-07 | -12  |
| 1     | 2022-03-07 | 5    |
| 1     | 2022-07-07 | 24   |
| 2     | 2022-08-07 | 37   |
| 2     | 2022-08-17 | 37   |
| 3     | 2022-02-07 | -7   |
| 3     | 2022-12-07 | -6   |
+---------+------------+--------+
输出: 
+---------+------------+--------+
| city_id | day    | degree |
+---------+------------+--------+
| 1     | 2022-07-07 | 24   |
| 2     | 2022-08-07 | 37   |
| 3     | 2022-12-07 | -6   |
+---------+------------+--------+
解释: 
城市 1 的最高气温出现在 2022-07-07,为24度。
城市 2 的最高气温出现在 2022-08-07 和 2022-08-17,为37度。我们选择较早的日期 (2022-08-07)。
城市 3 的最高气温记录在 2022-12-07 年,为-6 度。

解法

方法一

# Write your MySQL query statement below
WITH
  T AS (
    SELECT
      *,
      RANK() OVER (
        PARTITION BY city_id
        ORDER BY degree DESC, day
      ) AS rk
    FROM Weather
  )
SELECT city_id, day, degree
FROM T
WHERE rk = 1
ORDER BY 1;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文