Я пытаюсь создать этот запрос: 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));
};
Но это дает неверные значения. Моя цель - получить последний объект, сгруппированный по 'location'.
location (1,2,3,4).
Заранее спасибо, Сванте