안녕하세요 @realmankwon입니다.
sequelize 에서 group by 를 사용할 경우에는 attributes 를 사용합니다.
만약 order 라는 테이블에 category, kind 라는 컴럼으로 price의 sum 을 구하려고 한다면 일단 attributes 배열에 category, kind 를 넣어줍니다.
이후 sum 을 위한 fn 을 다음과 같이 입력합니다.
[
models.sequelize.fn("sum", models.sequelize.col("price")),
"total_price",
]
그리고 where 다음에 group: ["category", "kind"] 을 추가시켜 주면 됩니다.
전체 구문은 다음과 같습니다.
const totalAmount = await models.order.findAll({
attributes: [
"category",
"kind",
[
models.sequelize.fn("sum", models.sequelize.col("price")),
"total_price",
],
],
where: {
confirm : 'Y'
},
group: ["category", "kind"],
});