如何在Sequelize ORM映射到MySQL数据库中使用COUNT DISTINCT CASE表达式?

时间:2018-12-28 07:34:23

标签: node.js sequelize.js sequelize-typescript

我不熟悉Sequelize,并尝试在Node js中为以下MySQL select语句编写等效的Sequelize查询。

SELECT date(Game.TournamentDate) Date,
       COUNT(DISTINCT CASE WHEN Game in('Ludo','Cricket') && (Player.Status in ('Active','Rest')) THEN Point END) Field1 ,
       COUNT(DISTINCT CASE WHEN Player.Code in('PLY1','PLY2') && (Player.Status = 'Sleeping') THEN Point END) Field2  
FROM Game 
       LEFT JOIN Player ON Game.ID = Player.ID 
WHERE Game.TournamentDate BETWEEN '" + dateFrom + "' AND DATE_ADD('" + dateTo + "',INTERVAL 1 day) 
GROUP BY date(Game.TournamentDate) 
ORDER BY date(Game.TournamentDate) 

**出于演示目的更改了查询。

我已经看到了这个问题How to use CASE WHEN expression in Sequelize?,但我想知道Sequelize的功能,但是如果没有简单或可行的方法可以使用本机语法,请告诉我以下内容的含义链接中提到问题所在位置的语法。

Type: ['Employee', 'School', 'Public', 'Other']

1 个答案:

答案 0 :(得分:0)

您也可以在sequilize中进行原始查询。像这样

sequelize.query("SELECT * FROM `users`", { type: sequelize.QueryTypes.SELECT}).then(users => {})

Check Out this