Aipoでアカウント別メール件数集計SQL

Aipoでアカウント別のメールの件数を集計するためのSQLです。 SELECTのカラムをmaxしているのはPostgreSQLのGROUP BYの制約を回避するための処置です。

SELECT
    max(turbine_user.user_id),
    max(eip_m_mail_account.account_id) ,
    max(turbine_user.email),
    count(eip_t_mail.mail_id)
FROM
    eip_m_mail_account left join turbine_user on turbine_user.user_id = eip_m_mail_account.user_id  left join eip_t_mail on eip_m_mail_account.user_id = eip_t_mail.user_id
WHERE
    turbine_user.disabled = 'F'
GROUP BY
    eip_t_mail.user_id
ORDER BY
    max(turbine_user.user_id) ;