簡體   English   中英

使用函數時在 Sequelize 中分組

[英]Group by in Sequelize when using a function

我想按函數返回的值分組,如下所示:

    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

有沒有辦法對返回的分組值進行升序?

您需要根據 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 別名來使這更容易,但沒有語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM