Ich habe diese Tabelle nach unten:Oracle SQL Rang
[Table A][1]
B_NUMBER_COUNTRY OUTGOING_CARRIER MINUTES
CAN A 1,045.71
CAN B 7.98
CAN C 973.52
FRA A 566.19
FRA B 521.52
FRA C 27.03
FRA D 549.14
FRA E 0.21
USA A 32.57
USA B 303.17
USA C 9,837.53
USA D 3.91
USA E 0.07
USA F 2,469.00
USA G 67.68
USA H 0.37
USA I 933.72
Ich brauche b_number_country
Rang bezogen auf die Summe von Minuten.
In dem obigen Fall beträgt die Gesamtminuten für USA 13K, CAN ist 2K und FRA ist 1,6K. So sollte das Ranking USA sein - 1, CAN - 2 und FRA - 3. Durch das Hinzufügen des Rang Spalt, soll es nach unten zeigen,:
[Table A (rank)][2]
B_NUMBER_COUNTRY OUTGOING_CARRIER MINUTES RANK
CAN A 1,045.71 2
CAN B 7.98 2
CAN C 973.52 2
FRA A 566.19 3
FRA B 521.52 3
FRA C 27.03 3
FRA D 549.14 3
FRA E 0.21 3
USA A 32.57 1
USA B 303.17 1
USA C 9,837.53 1
USA D 3.91 1
USA E 0.07 1
USA F 2,469.00 1
USA G 67.68 1
USA H 0.37 1
USA I 933.72 1
Ich bin nicht in der Lage die richtige Abfrage zu bekommen, dies zu tun. Jeder Versuch, es beinhaltet sowohl b_number_country
als auch outgoing_carrier
als Teil des Rankings.
den Code Kommentar über DENSE_RANK in dnoeth Antwort- Um zu klären, und Gordon Kommentar zu dieser Antwort: Was willst du für "Rank" anzeigen, wenn es Krawatten gibt? Angenommen, die USA und Frankreich sind an erster Stelle gebunden; Willst du, dass beide Rang 1 und Kanada 3 zeigen? Oder willst du USA = 1, Frankreich = 1, Kanada = 2? Oder vielleicht (obwohl weniger wahrscheinlich), wählte einen der USA und Frankreich zu 1, der andere zu 2, und Kanada zu 3? Die Auswahl für 1 und 2 ist zufällig oder basiert auf einer sekundären Sortierung (z. B. alphabetisch oder nach Anzahl der Träger usw.). – mathguy