已关闭。此问题需要更多focused。目前不接受回答。
**要改进此问题吗?**更新此问题,使其仅针对editing this post的一个问题。
4天前关闭。
Improve this question的
我有一个表如下,
| ID|秩|级|
| --|--|--|
| 2 | 1 ||
| 3 | 1 ||
| 5 | 2 ||
| 4 | 3 ||
| 1 | 4 ||
| 7 | 4 ||
| 6 | 4 ||
我想根据学生的排名给他们打分。
-grade 1 10% of total students
-grade 2 10%
-grade 3 30%
-grade 4 50%
1.The **first 10%** of students based on their rank, need to be allocated to grade1.
2.The **next 10%** of students based on their rank, need to be allocated to grade2.
3.The **next 30%** of students based on their rank, need to be allocated to grade3.
4.The **next 50%** of students based on their rank, need to be allocated to grade4.
字符串
有人可以帮助邮政编码为相同的。
1条答案
按热度按时间xxslljrj1#
我建议交叉连接到单行的等级边界,这将在一定程度上简化case表达式。此外,我觉得
> 0
的测试是多余的,可以省略(但是如果你真的需要的话,可以重新引入它)。还要注意的是,如果一个条件被满足,case表达式就会在那一点停止,因此,只要条件顺序正确,就可以利用这一点进一步简化条件,只与任何等级范围的上边界进行比较。计算所有科目的分数,并通过rank函数对这些分数进行排名((从最高到最低))。学生可以与其他学生共享一个排名值。使用该排名,然后计算row_number。将该行号与要分配“等级”的学生人数的百分比进行比较。
字符串
请注意,数据的行数必须比问题中提供的示例中的行数更多,以获得合理的结果,因此我使用了21行(详细信息请参阅fiddle)。此数据是任意的,并且不会重新计算排名,只是进行了一些复制/粘贴。
然后使用行号分配等级,但需要计算更改等级分配的行。这可以按如下方式完成(但请注意百分比是累积的!):
型
| G1| G2| G3| G4|
| --|--|--|--|
| 2 | 4 | 11 |二十一点零|
该结果显示了我们更改年级的行号。例如,行<= 2是1年级,行>2但<= 4是2年级,等等。
型
| 学生状的|秩|行数|G1| G2| G3| G4|钙品位|
| --|--|--|--|--|--|--|--|
| 21 | 1 | 1 | 2 | 4 | 11 |二十一点零| 1 |
| 20 | 1 | 2 | 2 | 4 | 11 |二十一点零| 1 |
| 30 | 1 | 3 | 2 | 4 | 11 |二十一点零| 2 |
| 3 | 1 | 4 | 2 | 4 | 11 |二十一点零| 2 |
| 2 | 1 | 5 | 2 | 4 | 11 |二十一点零| 3 |
| 31 | 1 | 6 | 2 | 4 | 11 |二十一点零| 3 |
| 51 | 2 | 7 | 2 | 4 | 11 |二十一点零| 3 |
| 5 | 2 | 8 | 2 | 4 | 11 |二十一点零| 3 |
| 50 | 2 | 9 | 2 | 4 | 11 |二十一点零| 3 |
| 40 | 3 | 10 | 2 | 4 | 11 |二十一点零| 3 |
| 4 | 3 | 11 | 2 | 4 | 11 |二十一点零| 3 |
| 41 | 3 | 12 | 2 | 4 | 11 |二十一点零| 4 |
| 70 | 4 | 13 | 2 | 4 | 11 |二十一点零| 4 |
| 60 | 4 | 14 | 2 | 4 | 11 |二十一点零| 4 |
| 6 | 4 | 15 | 2 | 4 | 11 |二十一点零| 4 |
| 7 | 4 | 16 | 2 | 4 | 11 |二十一点零| 4 |
| 1 | 4 | 17 | 2 | 4 | 11 |二十一点零| 4 |
| 61 | 4 | 18 | 2 | 4 | 11 |二十一点零| 4 |
| 11 | 4 | 19 | 2 | 4 | 11 |二十一点零| 4 |
| 71 | 4 | 20 | 2 | 4 | 11 |二十一点零| 4 |
| 10 | 4 | 21 | 2 | 4 | 11 |二十一点零| 4 |
fiddle的