attributes: [
'login',
[Sequelize.fn('sum', Sequelize.col('value')), 'value']
],
where: {
active: false,
wallet: 1,
},
group: [
'login'
],
order: [
[ 'value', 'DESC' ],
]
});
и, несмотря на то, что по value у меня считается сумма, получаю ошибку:
SequelizeDatabaseError: column "schema.table.value" must appear in the GROUP BY clause or be used in an aggregate function
Что я делаю неправильно?
Мне кажется БД путает твои value, попробуй value_sum написать к примеру в алиас для агрегации
выглядело как то, что должно помочь, но не помогло(
Какой sql там генерится ?
а sequelize, получается, в логгинг не пихает запросы c ошибками? я поставил логгер на нужную модель, а там нужного мне запроса нет
https://stackoverflow.com/questions/21427501/how-can-i-see-the-sql-generated-by-sequelize-js
так добавить value в group и всё
изначально этот тред и смотрел, но надо было пойти дальше)) спасибо! проблему нашел. Она в order. Когда я пишу такой запрос: ``` Model.findAll({ attributes: [ 'login', [Sequelize.fn('sum', Sequelize.col('value')), 'value_sum'] ], where: { active: false, wallet: 1, }, group: [ 'login' ], order: [ [ 'value_sum', 'DESC' ], ] }); ``` в sql генерируется следующее: ORDER BY schema.table.value_sum DESC как можно сделать, чтобы value_sum бралась как алиас, а не как столбец таблицы?
Обсуждают сегодня