DjangoのaggregateでbooleanがTrueのものを集計したいとき

今回はDjangoのaggregateでbooleanがTrueのものを集計したいときどのように書けば良いのかについてご紹介いたします。



DjangoのaggregateでbooleanがTrueのものを集計したいとき

例として次のtestModelがあったとします。

この中のbooleanフィールドであるtestBooleanがTrueのものの合計を算出したいときがあると思います。

結論から言うと、Sumを使いましょう。
こんな感じです。

なぜこれでBoolean型のTrueの数を集計できるかというと、DjangoではBoolean型は内部ではtinyintであるため、Falseの場合は0、Trueの場合は1を持っているからです。

よって、Trueの場合である1を合計していくとそのままboolean型のフィールドがTrueの数になるので、期待した値が取れることとなります。

終わりに

今回はDjangoのaggregateでbooleanがTrueのものを集計したいときどのように書けば良いのかについてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

ITパスポート、基本情報技術者、応用情報技術者などIPAが提供する国家資格の過去問を学べるモバイルアプリをリリースしました。
詳しくは下記のプレスリリースをご覧ください。
https://prtimes.jp/main/html/rd/p/000000008.000073303.html

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Django

Posted by ちこ