You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Sequelize单查询统计多列的唯一值数量?

一次Sequelize查询搞定两列唯一值统计

当然可以用一次查询完成需求,不用分开执行两次count。核心思路是在查询的attributes里同时定义两个聚合统计,调用SQL的COUNT(DISTINCT)函数分别计算两列的唯一元素数量。

直接上代码:

const companyAndProductionUnits = await models.NonCeasedCompaniesProdUnit.findOne({
  attributes: [
    // 统计company_id的唯一值数量
    [models.sequelize.fn('COUNT', models.sequelize.fn('DISTINCT', models.sequelize.col('company_id'))), 'company_id'],
    // 统计production_unit_id的唯一值数量
    [models.sequelize.fn('COUNT', models.sequelize.fn('DISTINCT', models.sequelize.col('production_unit_id'))), 'production_unit_id']
  ],
  raw: true // 返回原始对象,避免Sequelize模型包装
});

执行后就能得到你想要的{ company_id: 15, production_unit_id: 7 }格式结果,而且全程只触发一次数据库查询,比两次单独查询更高效。

内容的提问来源于stack exchange,提问作者Vyacheslav Tarshevskiy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:41:27