SQL查询问题:统计各传感器的不同事件类型数量
修正SQL查询:统计每个传感器的不同事件类型数量
嘿,我发现你遇到的问题出在统计逻辑上——你的原查询用COUNT(*)统计的是每个sensor_id对应的所有记录行数,而不是不同event_type的数量,这就是为什么sensor_id=2得到的是4(它总共有4条记录),而不是你预期的3。
修正后的SQL语句
SELECT sensor_id, COUNT(DISTINCT event_type) AS `types` FROM `events` GROUP BY sensor_id ORDER BY sensor_id ASC;
逻辑说明
COUNT(DISTINCT event_type)会先对每个sensor_id分组内的event_type进行去重操作,再统计去重后的条目数量,完美匹配你需要的“已注册不同event_type的数量”的需求。- 保留了你原查询里的
GROUP BY sensor_id和ORDER BY sensor_id ASC,确保结果按传感器ID升序排列。
内容的提问来源于stack exchange,提问作者Domi Nik
相关产品推荐
相关产品推荐

