1811.(Medium)Find Interview Candidates

Table: Contests

+--------------+------+
| Column Name  | Type |
+--------------+------+
| contest_id   | int  |
| gold_medal   | int  |
| silver_medal | int  |
| bronze_medal | int  |
+--------------+------+
contest_id is the primary key for this table.
This table contains the LeetCode contest ID and the user IDs of the gold, silver, and bronze medalists.
It is guaranteed that any consecutive contests have consecutive IDs and that no ID is skipped.

Table: Users

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| user_id     | int     |
| mail        | varchar |
| name        | varchar |
+-------------+---------+
user_id is the primary key for this table.
This table contains information about the users.

Write an SQL query to report the name and the mail of all interview candidates. A user is an interview candidate if at least one of these two conditions is true:

The user won any medal in three or more consecutive contests. The user won the gold medal in three or more different contests (not necessarily consecutive). Return the result table in any order.

The query result format is in the following example:

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/find-interview-candidates

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

Solution

  1. t表列出所有选手的获奖情况,窗口函数做出连续获奖reference column

  2. u表对两个条件筛出的user_id取并集:金牌3次 union 连续获奖3次

Table Schema

Last updated

Was this helpful?