@AndrewGrinev

Как выполнить запрос в Flask-SQLAlcheny?

Имеются следующие модели:
task_results = db.Table('task_results',
                        db.Model.metadata,
                        db.Column('task_id', db.Integer, db.ForeignKey('tasks.id')),
                        db.Column('account_id', db.Integer, db.ForeignKey('account_details.id')))

class Task(db.Model):
    __tablename__ = 'tasks'

    id = db.Column(db.Integer, primary_key=True)  
    accounts = db.relationship('AccountDetail', secondary=brut_task_results)

class AccountDetail(db.Model):
    __tablename__ = 'account_details'

    id = db.Column(db.Integer, primary_key=True)


Подскажите, как можно выбрать задачи, которые встречаются в таблице task_results < 100 раз?
На SQL запрос выглядит примерно так:
SELECT * FROM tasks WHERE (SELECT COUNT(*) FROM task_results WHERE tasks.id = task_results.task_id) < 100
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ответы на вопрос 1
@lstdmi
Ради интереса посмотрите в сторону
docs.peewee-orm.com/en/latest/peewee/querying.html#counting-records Tweet.select().where(Tweet.id > 50).count()50
так же https://stackoverflow.com/questions/40725044/peewe...

Возможно ответ вот sqlalchemy.org .having
q = session.query(User.id).\
            join(User.addresses).\
            group_by(User.id).\
            having(func.count(Address.id) > 2)

но что то не получается запрос сделать какой нужен))

how-to-count-rows-with-select-with-sqlalchemy
бесплатный курс sql functions про count, sum sqlalchemy core ampus.datacamp.com courses introduction-to-relatio...

# Import func
from sqlalchemy import func

# Build a query to select the state and count of ages by state: stmt
stmt = select([census.columns.state, func.count(census.columns.age)])

# Group stmt by state
stmt = stmt.group_by(census.columns.state)

# Execute the statement and store all the records: results
results = connection.execute(stmt).fetchall()

# Print results
print(results)

# Print the keys/column names of the results returned
print(results[0].keys())
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы