【发布时间】:2019-04-30 01:01:44
【问题描述】:
我想在属性中运行一个函数并在startDate 和endDate 之间获得不同。但是当我执行代码得到这个错误:
列“Signals.id”必须出现在 GROUP BY 子句中或 在聚合函数中使用
const lastData = await psql.Signals.findAll({
attributes: [
"id",
"strategy",
"type",
"symbol",
"name",
"timeframe",
"status",
"startDate",
"endDate",
[
Sequelize.literal('EXTRACT(DAY FROM MAX("startDate")-MIN("endDate"))'),
"DateDifference"
],
"positionsData"
],
where: {
isMain: true,
strategy: {
[Op.in]: ["21", "22"]
}
},
order: [["id", "DESC"]],
limit: 50,
raw: true
})
Sequelizejs 的预期 SQL 代码是:
SELECT "id", "strategy", "type", "symbol", "name", "timeframe", "status", "startDate", "endDate", EXTRACT(DAY FROM MAX("startDate")-MIN("endDate")) AS "DateDifference", "positionsData" FROM "signals" AS "Signals" WHERE "Signals"."isMain" = true AND "Signals"."strategy" IN ('21', '22') ORDER BY "Signals"."id" DESC LIMIT 50;
有人可以帮我吗?怎么了?!
【问题讨论】:
标签: node.js postgresql sequelize.js