如何通过SQL分组inventory表指定字段重复行并返回计数(PHP场景)
解决方案
1. 指定客户的分组统计
直接修改原有SQL语句,用GROUP BY对指定客户下的manufacturer、type、destination、usable四个字段做分组,同时通过COUNT(*)统计每组的条目数量:
SELECT manufacturer, type, destination, usable, COUNT(*) AS group_count FROM inventory WHERE customer = '目标客户值' GROUP BY manufacturer, type, destination, usable;
执行后会返回该客户下所有字段组合一致的分组,以及每组对应的条目数。
2. 全表的分组统计
完全不需要结合PHP实现,纯SQL就能一次性完成全表的分组统计,只需去掉上述语句中的WHERE条件:
SELECT manufacturer, type, destination, usable, COUNT(*) AS group_count FROM inventory GROUP BY manufacturer, type, destination, usable;
这条SQL会直接返回全表中所有四个字段值相同的分组信息,以及对应的条目计数。
补充说明
这两种场景都不需要在PHP里做额外的分组逻辑,SQL的GROUP BY本身就能高效完成分组统计工作,PHP只需要执行SQL语句并读取返回的结果集即可。
内容的提问来源于stack exchange,提问作者ShaneO
相关产品推荐
相关产品推荐

