# Denkanstoß für Ranking



## Kirby.exe (8. Jul 2021)

Also ich habe ein Level System, welches die User nach XP ranked  Bis jetzt hatte ich das Dictionary in Python einfach absteigend nach XP sortiert und dann mit dem Rank jedes mal gelabeld...Ich möchte es nun gerne in meine Postgres Datenbank verfrachten und mit einem Query lösen, aber irgendwie fällt mir da nichts ein xD

Das ist die Methode bis jetzt:


```
def update_ranks(self, users, guild_id):
        sorted_list = self.sort_json_by_xp(users[guild_id])
        temp_rank = 1
        for entry in sorted_list:
            users[guild_id][entry[0]]["rank"] = temp_rank
            temp_rank += 1
```

Die Datenbanktabelle ist die folgende:


```
from sqlalchemy import Column, String, Integer, ForeignKey
from base import Base


class Guild_User(Base):
    __tablename__ = 'guild_user'
    user_id = Column(String, ForeignKey('users.user_id'), primary_key=True)
    guild_id = Column(String, ForeignKey('guilds.guild_id'), primary_key=True)
    xp = Column(Integer, autoincrement=False)
    level = Column(Integer, autoincrement=False)
    rank = Column(Integer, autoincrement=False)
    send_messages = Column(Integer, autoincrement=False)
    used_reactions = Column(Integer, autoincrement=False)
```


----------



## mrBrown (8. Jul 2021)

https://www.sqltutorial.org/sql-window-functions/sql-rank/ ?


----------

