Python SQLAlchemy MySQLでcase文を使う
PythohのORMライブラリSQLAlchemyでMySQLのテーブルSelectでcase文を使う方法です。
毎回忘れてリファレンスを見るので備忘録です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.sql.schema import Column from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.dialects.mysql.base import ( VARCHAR, INTEGER, BIGINT ) from sqlalchemy import func from sqlalchemy.sql.expression import case, and_, or_ class Employee(Base): __tablename__ = 'employee' employee_id = Column(BIGINT(unsigned=True), primary_key=True, nullable=True) name = Column(VARCHAR(length=45), nullable=False) prefecture = Column(VARCHAR(length=45), nullable=False) url = 'mysql+pymysql://username:password@db_host/db_name?charset=utf8' engine = create_engine(url,echo=True) Session = sessionmaker(bind=engine) session = Session() employee_tbl = Employee result =session.query( func.sum( case([employee_tbl.prefecture == 'tokyo',1],else_=0) ).label('tokyo_count'), func.sum( case( [or_((employee_tbl.status == u'osaka'),(log_tbl.status == u'kyoto')), 1], else_=0 ) ).label('kansai_count') ).first() |
上記の例ではtokyoの人数とosaka , kyotoの人数をそれぞれカウントしています。

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー2年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Linux Mint 17 MATE 64bit にTensorFlowをインストールする
勉強会でTensorFlowを使用しますので、Linux Mint 17 MAT …
-
-
「大阪Pythonユーザの集まり」に行ってきました
「大阪Pythonユーザの集まり」 に行ってきました。 あんまりメモ取れてません …
-
-
docomo Developer supportの 雑談対話APIから自然対話APIへ移行しました
LINEやSlackのbotで重宝していた、雑談対話APIが終了する、とのことで …
-
-
Linux Mint 17 MATE 64bit にIPython Notebookをインストールする
今日行く勉強会でIPython Notebookの環境が必要なため、手持ちのLi …
-
-
「【第2回】データ分析勉強会(尼崎Pythonの会#1)」に行ってきました
「【第2回】データ分析勉強会(尼崎Pythonの会#1)」に行ってきました。 略 …
-
-
CentOS 6にPython実行環境を構築
CentOS6(32bit)にPython2.7実行環境を構築した際のメモです。 …
-
-
「MonotaRo Tech #3 テスト自動化」に行ってきました
モノタロウさんの「MonotaRo Tech #3 テスト自動化」に行ってきまし …
-
-
Pepper 開発 ワークショップ初級~中級~番外編に1日で一気に参加した
Pepperの開発方法が知りたかったので、Pepperアトリエ秋葉原 with …
-
-
Pepperで撮影した写真をAmazon Rekognitionで分析してその結果をPepperがしゃべる ~(2)Pepper編~
Pepperで撮影した写真をAmazon Rekognitionで分析してその結 …
-
-
pythonのsqlalchemyで嵌った話
エラーメッセージ InvalidRequestError: SQL expres …