【问题标题】:Sequelizejs error to run function on columns - check_ungrouped_columns_walker in在列上运行函数的 Sequelizejs 错误 - check_ungrouped_columns_walker in
【发布时间】:2019-04-30 01:01:44
【问题描述】:

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

列“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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-10-28
      • 2018-09-16
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 2021-02-10
      相关资源
      最近更新 更多