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

如何执行条件计数以统计车辆关联2台/3台设备的次数

实现方案

这个需求可以通过两层聚合完成,需要用到子查询,同时也可以用条件计数实现你提到的带判断的统计逻辑,具体实现如下:

步骤说明

  1. 先按日期和车辆分组,统计每辆车单日关联的设备数量
  2. 再按车辆分组,分别统计设备数等于2、等于3的天数,就是你要的结果

参考SQL代码(兼容MySQL/PostgreSQL等主流数据库)

SELECT 
  vehicle,
  -- 统计关联2台设备的次数
  COUNT(CASE WHEN device_count = 2 THEN 1 END) AS `2 Devices`,
  -- 统计关联3台设备的次数
  COUNT(CASE WHEN device_count = 3 THEN 1 END) AS `3 Devices`
FROM (
  -- 子查询:计算每辆车每天关联的设备数
  SELECT 
    cdts,
    vehicle,
    COUNT(DISTINCT device) AS device_count
  FROM 你的表名
  GROUP BY cdts, vehicle
) AS daily_stat
GROUP BY vehicle
ORDER BY vehicle;

逻辑说明

  • 子查询里的COUNT(DISTINCT device)是为了避免同天同车出现重复设备记录的问题,如果你能保证数据没有重复,去掉DISTINCT也可以
  • 外层的条件COUNT逻辑是:当设备数符合要求时返回值,否则返回NULL,COUNT会自动忽略NULL值,就实现了按条件计数的效果,和你提到的「带where条件的count」逻辑一致,最终输出结果和你给出的预期完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:36:08