【发布时间】:2017-10-10 07:29:32
【问题描述】:
我正在尝试按第一列和第二列进行查询设置排名列。比如 Rank over Partition 不存在 MySQL
例如,
来自
+----+-------+--------+------+
| id | First | Second | Rank |
+----+-------+--------+------+
| 1 | a | 10 | |
| 2 | a | 9 | |
| 3 | b | 10 | |
| 4 | b | 7 | |
| 5 | a | 1 | |
| 6 | b | 1 | |
+----+-------+--------+------+
到
+----+-------+--------+------+
| id | First | Second | Rank |
+----+-------+--------+------+
| 1 | a | 10 | 3 |
| 2 | a | 9 | 2 |
| 3 | b | 10 | 3 |
| 4 | b | 7 | 2 |
| 5 | a | 1 | 1 |
| 6 | b | 1 | 1 |
+----+-------+--------+------+
排名不会继续。当它到达'First'列的'a'的最后一个值时,它再次从1开始。
而且它必须是 SET 而不是 SELECT。 我不介意使用 SELECT,但我的意思是我不是试图从数据库中检索数据,而是设置值。
朋友们提前干杯。
【问题讨论】:
-
但为什么要存储派生数据?
-
每次要求都无法订购
-
我不明白。费用是多少?
-
我的 Django 服务器每次请求时都无法订购表格。因为它可以是每分钟一千次。所以我的团队决定将排名数据存储在表格列中。因为“select rank where id= x”会比对每一行排序要快得多。