Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9350

Sequelize(PostgreSQL)で月次の集計を行う

$
0
0

例えば、特定の会社に所属するアカウントの新規作成数を月次で集計したい場合(そんな状況があるのかどうかはさておき)

想定結果

monthcnt
2020-0310

PostgreSQL

SELECTTO_CHAR(created_date,'YYYY-mm')ASmonth,COUNT(user_id)AScreated_cntFROMusersWHEREcompany_id=1GROUPBYmonth

Sequelize

constsequelize=require('sequelize');constuserCtrl=require('../models/userCtrl')...constres=awaituserCtrl.findAll({attributes:[[sequelize.fn('to_char',sequelize.col('created_date'),'YYYY-mm'),'month'],[sequelize.fn('count',sequelize.col('user_id')),'created_cnt']],where:{company_id:1,},group:['month'],});

sequelize.fn...データベース関数を指定
sequelize.col...対象のカラムを指定

蛇足

MySQLではTO_CHAR関数の代わりにDATE_FORMAT関数を使う
指定するフォーマットには、「%」文字をつける

SELECTDATE_FORMAT(created_date,'%Y-%m')ASmonth,COUNT(user_id)AScreated_cnt...

参考

Sequelize公式 - sequelize.fn
MySQL5.6リファレンスマニュアル - DATE_FORMAT


Viewing all articles
Browse latest Browse all 9350

Trending Articles