我需要帮助对一个表中的行进行排名。
+-----+-------+-------------+------------+-------+------+
| ID | group | typeInGroup | rankOfType | score | Rank |
+-----+-------+-------------+------------+-------+------+
| 1 | a | type1 | 1 | 40 | |
| 2 | a | type2 | 2 | 55 | |
| 3 | a | type1 | 1 | 20 | |
| 4 | b | type3 | 3 | 80 | |
| 5 | b | type2 | 2 | 60 | |
| 6 | b | type1 | 1 | 70 | |
| 7 | b | type1 | 1 | 70 | |
+-----+-------+-------------+------------+-------+------+
我基本上都在寻找能让我订购最后一栏“Rank”的解决方案。
每个“组”最多有9个“typeInGroup”,在“rankOfTypes”列中按1-9排名。每个“typeInGroup”都有“得分”。当我计算最后一列“Rank”时,我会看“score”和“rankOfType”列。
具有最高分数的行应排在第一位,除非有“rankOfType”列的行具有较低的值并且得分<= 15而不是我们一直在查看的分数。具有相同“得分”和“rankOfType”的行的顺序并不重要。
我应该检查组中的每一行以及最终的这一行:
+-----+-------+-------------+------------+-------+------+
| ID | group | typeInGroup | rankOfType | score | Rank |
+-----+-------+-------------+------------+-------+------+
| 1 | a | type1 | 1 | 40 | 1 |
| 2 | a | type2 | 2 | 55 | 2 |
| 3 | a | type1 | 1 | 20 | 3 |
| 4 | b | type3 | 3 | 80 | 3 |
| 5 | b | type2 | 2 | 60 | 4 |
| 6 | b | type1 | 1 | 70 | 1 |
| 7 | b | type1 | 1 | 70 | 2 |
+-----+-------+-------------+------------+-------+------+
知道怎么做吗?
答案 0 :(得分:0)
NotificationCenter.default.addObserver(forName: NSNotification.Name.AuthStateDidChange, object: Auth.auth(), queue: nil) { _ in
let user = Auth.auth().currentUser
}
查询,检查符合您特殊要求的任何行(如果存在),而该行的优先级将更高
尝试使用更大的数据集并验证结果
CROSS APPLY