Welcome to Subscribe On Youtube

2159. Order Two Columns Independently

Description

Table: Data

+-------------+------+
| Column Name | Type |
+-------------+------+
| first_col   | int  |
| second_col  | int  |
+-------------+------+
This table may contain duplicate rows.

 

Write a solution to independently:

  • order first_col in ascending order.
  • order second_col in descending order.

The result format is in the following example.

 

Example 1:

Input: 
Data table:
+-----------+------------+
| first_col | second_col |
+-----------+------------+
| 4         | 2          |
| 2         | 3          |
| 3         | 1          |
| 1         | 4          |
+-----------+------------+
Output: 
+-----------+------------+
| first_col | second_col |
+-----------+------------+
| 1         | 4          |
| 2         | 3          |
| 3         | 2          |
| 4         | 1          |
+-----------+------------+

Solutions

  • # Write your MySQL query statement below
    WITH
        S AS (
            SELECT
                first_col,
                ROW_NUMBER() OVER (ORDER BY first_col) AS rk
            FROM Data
        ),
        T AS (
            SELECT
                second_col,
                ROW_NUMBER() OVER (ORDER BY second_col DESC) AS rk
            FROM Data
        )
    SELECT first_col, second_col
    FROM
        S
        JOIN T USING (rk);
    
    

All Problems

All Solutions