\

SQLAlchemyはPythonでよく使われるORマッパーです。ここでは、SQLAlchemyを使用してデータのカウントを行う方法について説明します。

全件カウントする方法

全件カウントするには、次のように書きます。

from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.engine import Result
from sqlalchemy import select
from sqlalchemy.orm import joinedload
from sqlalchemy.sql.expression import func

result: Result = await db.execute(func.count(log_model.Log.id))
logs = result.scalar()

where句を使ってカウントする方法

where句を使って特定の条件を満たすデータのみをカウントするには、次のように書きます。

user_counts_client = await db.scalar(
    select(func.count())
    .select_from(user_model.User)
    .filter(user_model.User.role == "client")
)

SQLAlchemyのバージョン1.4以降でのカウント方法

SQLAlchemyのバージョン1.4以降では、Query.countの代わりに次のように書くことが推奨されています。

count_query = query.with_only_columns(func.count(Foo.id))
count = session.execute(count_query).scalar_one()

以上がPythonとSQLAlchemyを用いたデータカウントクエリの基本的な書き方です。これらのコードを参考に、自分のプロジェクトに適したクエリを作成してみてください。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です