Zum Inhalt springen
  • 0

SQL Rang


Frage

Geschrieben

Hallo Leute,

ich bin auf der Suche nach einem SQL-Statement, der den Rang aus einer Rangliste anzeigt. In der Tabelle users wird nach xp gesucht. Ich habe mal ein Statement vorbereitet. Es soll aber nur der Rang und nicht die ganze Liste erscheinen. Könnt ihr mir helfen?

 

SELECT xp AS Rang FROM users ORDER BY xp DESC

 

10 Antworten auf diese Frage

Empfohlene Beiträge

  • 2
Geschrieben

SQL ist eigentlich nicht dafür bestimmt, Analysen auf Daten zu machen. Es ist eigentlich dafür gedacht, Daten aus einer Datenbank zu lesen. Ein DBMS besitzt aber in der Regel einige analytische Funktionen. Wie @sylenz schon richtig nachfragt, ist es wichtig zu wissen, welche DBMS du verwendest, da die analytischen Funktionen immer unterschiedlich implementiert sind.

Falls du MySQL verwenden solltest, könnte man erst ab 8.0 mit den Funktionen RANK() bzw. DENSE_RANK() arbeiten. Ansonsten ist die Lösung von @PVoss die präferierte Lösung, wenn es reines SQL sein soll.

 

  • 1
Geschrieben

Welches DBMS? 

Je nachdem kannst du dir mit z.B. Dense_Rank einfach eine zusätzliche Spalte mit der Position erstellen und diese zu dem User ausgegeben. 

  • 0
Geschrieben

Im Moment selektierst du die ganze Tabelle.

 

Wenn du einen bestimmten Wert selektieren willst, brauchst du noch ein Where Statement. Für die XP, die du ausgegeben haben willst.

 

 

  • 0
Geschrieben
vor 20 Minuten schrieb mintmaroo:

Hallo Leute,

ich bin auf der Suche nach einem SQL-Statement, der den Rang aus einer Rangliste anzeigt. In der Tabelle users wird nach xp gesucht. Ich habe mal ein Statement vorbereitet. Es soll aber nur der Rang und nicht die ganze Liste erscheinen. Könnt ihr mir helfen?

 


SELECT xp AS Rang FROM users ORDER BY xp DESC

 

Welcher Rang den genau? Zu einem bestimmten User oder was benötigst du genau?

  • 0
Geschrieben

Hi,

es soll nur der Rang ausgeben werden.

Also wenn die Tabelle so aussieht:

Hans XP = 12

Peter XP = 10

Meyer XP =5

Und ich bin Meyer, dann wird nur angezeigt : 3!

  • 0
Geschrieben

Ich würde bei einer einzelnen Tabelle kein Join verwenden.

Wie wäre es damit, die Tabelle erst nach XP absteigend zu sortieren. Und dann mit einer Where Abfrage nach zum Beispiel Meier zu suchen und über den Index die Zeilennummer und somit den Rang auszugeben?

Btw ist es immer besser, wenn man nur Tipps gibt. Anstatt eine Lösung zu Posten.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...