sql >> Databáze >  >> RDS >> PostgreSQL

SqlAlchemy (Postgres + Flask) :Jak sečíst více sloupců?

Musíte vytvořit výraz pro hybrid_method

class Score(db.Model):
    __tablename__ = 'scores'
    item_id  = db.Column(db.Integer(), primary_key=True)
    score1 = db.Column(db.Integer(), nullable=False)
    score2 = db.Column(db.Integer(), nullable=False)
    score3 = db.Column(db.Integer(), nullable=False)
    score4 = db.Column(db.Integer(), nullable=False)

    @hybrid_method
    def total_score(self, fields):
        return sum(getattr(self, field) for field in fields)

    @total_score.expression
    def total_score(cls, fields):
        return sum(getattr(cls, field) for field in fields)


fields = ['score1', 'score2']
scores = db.session.query(Score.item_id, Score.total_score(fields).label('total_score')).order_by('total_score')
final_output = [score._asdict() for score in scores]



  1. Fond připojení pro databázi '/data/data/msv_database.db' nemohl udělit připojení. Připojení:0 aktivní, 1 nečinné, 0 dostupných

  2. Příkaz MYSQL SELECT WITHIN IF

  3. Nelze nainstalovat mysqlclient ve virtualenv na novém Macu

  4. IN vs OR Oracle, který rychlejší?