【发布时间】:2020-04-13 09:07:39
【问题描述】:
我尝试创建此查询:http://sqlfiddle.com/#!9/2a746d/1 转换成 Sequelize 格式。
SELECT location, parameter, datetime, value
FROM (
SELECT location, parameter, datetime, value,
@seq := IF(@loc = location, @seq + 1,
IF(@loc := location, 1, 1)) AS seq
FROM mytable
CROSS JOIN (SELECT @seq := 0, @loc = '') AS vars
ORDER By location, datetime desc, value desc) AS t
WHERE t.seq = 1
我尝试执行以下操作:
getLastPerCategory = function(callback) {
Model.findAll({
attributes: [
[sequelize.fn('MAX', sequelize.col('location')), 'location'],
[sequelize.fn('MAX', sequelize.col('parameter')), 'parameter'],
[sequelize.fn('MAX', sequelize.col('datetime')), 'datetime'],
[sequelize.fn('MAX', sequelize.col('value')), 'value'],
],
group: ['location'],
raw: true,
}).then(results => callback(results));
};
但它给出的值不正确。 我的目标是获取按“位置”分组的最后一个对象。
位置(1,2,3,4)。
提前致谢, 斯万特
【问题讨论】:
标签: javascript mysql sql sequelize.js