1.group('字段名')
2.distinct(true)
group('字段名'):根据设置的分组的字段名去除重复
distinct(true):一般写在field()前,根据field()定义的字段名去除重复
区别:group('字段名')不能和聚合查询如:count();sum();等连用,而distinct(true)可以,但并没有什么卵用,聚合函数计算的结果并不是根据去除重复后的查询出的数据来计算.
group('字段名')可配合having()函数一起使用,从分组的结果中筛选(通常是聚合条件)数据
Db::table('think_user')
->field('username,max(score)')
->group('user_id')
->having('count(test_time)>3')
->select();
例:
group('字段名')和聚合查询连用
输出结果:报错
如果非得用group('字段名')统计可以这样写:先分组查询,再计算总数
用法:
输出结果:
上面例子演示的是当只查询一个字段去除重复时,group和distinct(true)效果相同。
注:当只查询一个字段时,用column()函数可以返回一个一维数组