Как мне преобразовать SQL запрос в секвелиз? - PullRequest
0 голосов
/ 22 марта 2020

У меня есть этот блок sql - я использую postgres DB. Как мне преобразовать этот запрос в формат секвелизации ORM? Спасибо

select 
    to_char (created_at,'Mon') as month,
    extract (year from created_at) as year,
    id_product as product ,
    sum (sales) as sales
from 
    toiletries
group by 
    1, 2, 3

1 Ответ

0 голосов
/ 23 марта 2020

Вы можете достичь этого, используя sequelize.literals ()

const Toiletries = sequelize.define('toiletries', {
    id_product: {
        type: Sequelize.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    productName: {
        type: Sequelize.TEXT,
    }
    sales: {
     type: Sequelize.INTEGER,
    }
}, {
    freezeTableName: true,
    tableName: 'toiletries'
});
Toiletries.findAll({
  group: ['id_product', 'createdAt'],
  attributes: [
    ['id_product', 'product'],
    [sequelize.literal('extract(YEAR FROM "createdAt")'), 'year'],
    [sequelize.literal('sum (sales)'), 'sum']
  ]
}).then((inn) => {
  console.log(JSON.stringify(inn))
});

Вам нужно немного покопаться в столбце 'to_char'. Если вы предоставите мне структуру таблицы, мы также можем извлечь ее.

...