Как вернуть счетчик определенного поля в psql db - PullRequest
0 голосов
/ 05 октября 2018

У меня есть таблицы базы данных со связями, как показано ниже.

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

Я хочу подсчитать общее количество записей в Post groupBy categoryItemId, также возвращающихся по имени categoryItemcategoryName.Я хочу столбцы, как возвращено

CategoryName, item, totalInPostTable

Я использую Sequelize RDB Mapper.Когда я использую запрос ниже

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"
        }
    }
}

Однако, он завершился неудачно и вернул null без ошибок, как только я сгруппировал идентификатор categorypryItem, как показано ниже.

 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"]
    })

Пожалуйста, что я делаю не так?Любая помощь будет оценена.

...