Ich habe verschiedene Arten von Typen und rangierte sie entsprechend ihre Spuren mit:Rang nach Buchstaben in der Tabelle mit SQL/Rang/DENSE_RANK()
select id,subject,semester,student,course,mark,grade
,dense_rank() over(PARTITION by course order by mark desc) as RANK
from courses c
LEFT JOIN course_enrolments b ON c.id=b.course;
und das Ergebnis ist:
id subject semester student course mark grade rank
5270 1001 126 1077055 5270 99 HD 1
5270 1001 126 1076079 5270 98 HD 2
5270 1001 126 1077334 5270 85 HD 3
5270 1001 126 1076920 5270 84 DN 4
5270 1001 126 1077443 5270 84 DN 5
5270 1001 126 1072135 5270 67 CR 6
5270 1001 126 1079997 5270 66 CR 7
5270 1001 126 1071034 5270 62 PS 8
5270 1001 126 1079993 5270 62 PS 9
5270 1001 126 1074070 5270 44 FL 10
5270 1001 126 1078409 5270 30 FL 11
5270 1001 126 1073006 5270 28 FL 12
jedoch Was ich versuche nach ihren Qualitäten zu erreichen, ist es, diese Leute Rang und nicht nach ihren Marken:
SoWas ich versuche zu erreichen, ist wie folgt:
id subject semester student course mark grade rank
5270 1001 126 1077055 5270 99 HD 1
5270 1001 126 1076079 5270 98 HD 1
5270 1001 126 1077334 5270 85 HD 1
5270 1001 126 1076920 5270 84 DN 2
5270 1001 126 1077443 5270 84 DN 2
5270 1001 126 1072135 5270 67 CR 3
5270 1001 126 1079997 5270 66 CR 3
5270 1001 126 1071034 5270 62 PS 4
5270 1001 126 1079993 5270 62 PS 4
5270 1001 126 1074070 5270 44 FL 5
5270 1001 126 1078409 5270 30 FL 5
5270 1001 126 1073006 5270 28 FL 5
Wie kann ich das erreichen? Danke,
Ich denke, der einfachste Weg, dies zu tun wäre, einen Tabellenwertparameter zu erstellen, in dem Sie manuell Reihen zuweisen zu HDs (also, 2 Spalten), dann nur diese Tabelle zu Ihrer ersten Tabelle auf dem "Grade" -Feld beitreten. Ich würde versuchen, es aufzuschreiben, aber ich bin nicht mit PostgreSQL-Syntax vertraut. – Sturgus