Laravel如何统计拥有ongoing项目的独立client_id总数
Laravel 统计拥有进行中项目的独立客户数
要统计拥有至少一个ongoing状态项目的独立client_id数量,你可以用以下两种常用方法:
方法一:使用
distinct()去重后统计
直接对client_id字段去重,再统计数量:Project::where('status', 'Ongoing')->distinct()->count('client_id');这个方法会先筛选出所有状态为Ongoing的记录,然后对
client_id去重,最后统计去重后的总数,正好满足你“同一client_id仅计1次”的需求。方法二:使用
groupBy()分组后统计
按client_id分组,统计分组的数量:Project::select('client_id')->where('status', 'Ongoing')->groupBy('client_id')->count();如果你的Laravel开启了MySQL严格模式(默认开启),直接用
groupBy可能会报错,这时候要么在config/database.php的mysql配置里把strict设为false,要么就像上面那样明确指定要查询的字段client_id,避免触发严格模式的限制。
两种方法最终效果一致,你可以根据自己的习惯选择。
内容的提问来源于stack exchange,提问作者Chizo
相关产品推荐
相关产品推荐

