Сгруппировать в Sequelize при использовании функции - PullRequest
1 голос
/ 26 февраля 2020

Я хочу сгруппировать по значениям, возвращаемым функцией, например:

    let noticesOpened = NoticeOpened.aggregate(
        "id",
        "COUNT", {
            plain: false,
            where: noticeWhere,
            group: [sequelize.fn("date_trunc", "day", sequelize.col("created_at"))],
            order: [
                ["created_at", "ASC"]
            ],
        });
    return noticesOpened;

Когда я пытаюсь выполнить этот запрос, я получаю:

SequelizeDatabaseError: column "notice_opened_tbl.created_at" must appear in the GROUP BY clause or be used in an aggregate function

Есть ли способ сделать возрастающий порядок возвращаемого сгруппированного значения?

1 Ответ

0 голосов
/ 26 февраля 2020

Вам нужно упорядочить по результату функции из предложения group, например, что-то вроде:

    let noticesOpened = NoticeOpened.aggregate(
        "id",
        "COUNT", {
            plain: false,
            where: noticeWhere,
            group: [sequelize.fn("date_trunc", "day", sequelize.col("created_at"))],
            order: [
                [sequelize.fn("date_trunc", "day", sequelize.col("created_at")), "ASC"]
            ],
        });
    return noticesOpened;

Я думаю, что вы можете помнить, что вы можете использовать псевдонимы sequelize, чтобы сделать это проще, но у вас нет Синтаксис на руку.

...