如何在psql db中返回特定字段的计数

时间:2018-10-05 00:23:24

标签: postgresql relational-database sequelize.js

我有一个数据库表,其关系如下。

Cagetory ---> CategorItems //One to many(CategoryItem has categoryId colum)
CatgeoryItems ---> Post // One to many(Post has categoryItemId).

我想计算Post组中的记录总数,因为categoryItemId还返回了categoryItem名称和categoryName。我想要返回的列

CategoryName, item, totalInPostTable

我正在使用sequelize rdb映射器。当我使用下面的查询

models.Post.findAll({
        include: [{
            model: models.CategoryItem,
            attributes: ['item'],
            required: true,
            include: [{
                model: models.Category,
                attributes: ['name'],
                required: true,
                group: ["name"]
            }]
        }],
        attributes: ['categoryItemId'],
    })

它返回下面的记录

{
    "categoryItemId": 1,
    "CategoryItem": {
        "item": "xxxxxx",
        "Category": {
            "name": "xxxxxx"
        }
    }
},
{
    "categoryItemId": 1,
    "CategoryItem": {
        "item": "xxxxxx",
        "Category": {
            "name": "xxxxxx"
        }
    }
},
{
    "categoryItemId": 1,
    "CategoryItem": {
        "item": "xxxxxx",
        "Category": {
            "name": "xxxxxx"
        }
    }
},
{
    "categoryItemId": 1,
    "CategoryItem": {
        "item": "xxxxxx",
        "Category": {
            "name": "xxxxxx"
        }
    }
},
{
    "categoryItemId": 1,
    "CategoryItem": {
        "item": "xxxxxx",
        "Category": {
            "name": "xxxxxx"
        }
    }
},
{
    "categoryItemId": 2,
    "CategoryItem": {
        "item": "xxxxxx",
        "Category": {
            "name": "xxxxxx"
        }
    }
},
{
    "categoryItemId": 4,
    "CategoryItem": {
        "item": "xxxxxx",
        "Category": {
            "name": "xxxxxx"
        }
    }
}

但是,它失败了,并且一旦我按如下所示的categpryItem id分组,就返回没有错误的null。

 models.Post.findAll({
        include: [{
            model: models.CategoryItem,
            attributes: ['item', [sequelize.fn('COUNT', sequelize.col('id')), 'no_category']],
            required: true,
            include: [{
                model: models.Category,
                attributes: ['name'],
                required: true,
            }]
        }],
        attributes: ['categoryItemId'],

        group: ["categoryItemId"]
    })

请问我在做什么错?任何帮助将不胜感激。

0 个答案:

没有答案