comments | difficulty | edit_url | tags | |
---|---|---|---|---|
true |
Medium |
|
Table: Customers
+---------------+---------+ | Column Name | Type | +---------------+---------+ | customer_id | int | | customer_name | varchar | +---------------+---------+ customer_id is the column with unique values for this table. Each row of this table contains the name and the id customer.
Write a solution to find the missing customer IDs. The missing IDs are ones that are not in the Customers
table but are in the range between 1
and the maximum customer_id
present in the table.
Notice that the maximum customer_id
will not exceed 100
.
Return the result table ordered by ids
in ascending order.
The result format is in the following example.
Example 1:
Input: Customers table: +-------------+---------------+ | customer_id | customer_name | +-------------+---------------+ | 1 | Alice | | 4 | Bob | | 5 | Charlie | +-------------+---------------+ Output: +-----+ | ids | +-----+ | 2 | | 3 | +-----+ Explanation: The maximum customer_id present in the table is 5, so in the range [1,5], IDs 2 and 3 are missing from the table.
# Write your MySQL query statement below
WITH RECURSIVE
t AS (
SELECT
1 AS n
UNION ALL
SELECT
n + 1
FROM t
WHERE n < 100
)
SELECT
n AS ids
FROM t
WHERE
n < (
SELECT
MAX(customer_id)
FROM Customers
)
AND n NOT IN (
SELECT
customer_id
FROM Customers
);