对于每天和id,我们必须按降序对值进行排名。
下面是输入表。
>input data
+------------+----+-------+
| date | id | value |
+------------+----+-------+
| 01-01-2018 | A | 20 |
| 01-01-2018 | A | 50 |
| 01-01-2018 | C | 40 |
| 01-01-2018 | B | 40 |
| 02-01-2018 | A | 30 |
| 03-01-2018 | C | 20 |
| 03-01-2018 | C | 40 |
| 04-01-2018 | B | 0 |
| 04-01-2018 | B | 40 |
| 05-01-2018 | B | 70 |
+------------+----+-------+
输出应如下所示:
>output data
+------------+----+-------+------+
| date | id | value | rank |
+------------+----+-------+------+
| 01-01-2018 | A | 50 | 1 |
| 01-01-2018 | A | 20 | 2 |
| 01-01-2018 | B | 40 | 1 |
| 01-01-2018 | C | 40 | 1 |
| 02-01-2018 | A | 30 | 1 |
| 03-01-2018 | C | 40 | 1 |
| 03-01-2018 | C | 20 | 2 |
| 04-01-2018 | B | 40 | 1 |
| 04-01-2018 | B | 0 | 2 |
| 05-01-2018 | B | 70 | 1 |
+------------+----+-------+------+
您可以使用RANK()
,在date
和id
上进行分区,并按value
降序排列: