node.js - Sequelizejs 在列上运行函数时出错 - check_ungrouped_columns_walker in

标签 node.js postgresql sequelize.js

我想在属性中运行一个函数并在 startDateendDate 之间获得不同。但是当我执行代码时出现此错误:

column "Signals.id" must appear in the GROUP BY clause or be used in an aggregate function


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;

有谁能够帮我?怎么了?!

最佳答案

汇总函数(MIN、MAX、SUM 等)通常需要 GROUP BY 子句。 MIN 和 MAX 日期字段应应用于哪组数据?每个 id 会有多个日期吗?

关于node.js - Sequelizejs 在列上运行函数时出错 - check_ungrouped_columns_walker in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55888996/

相关文章:

node.js - React Routing 在本地有效,但在 Heroku 中无效

node.js - 使用 nodeJS 的异步 http 调用

python - 将带有 jsonb_each 的 Postgresql 查询转换为 sqlalchemy

rest - 如何在一次调用中从 sequelize-restful-extended 中获取 Backbone Collection

node.js - 在 restify 中不调用 next() 的后果

node.js - 如何在 Angular 中将字符串转换为 json?

java - 如何使用 Spring Data/JPA 插入到 Postgres 数组类型的列中?

postgresql - 以编程方式创建 postgreSQL 数据库

javascript - Sequelize 查询时间戳格式

node.js - 如何在 Sequelize 中正确配置和计算belongsToMany 关联?