目录
问题简介:sql语句select字段不可以比group by字段多,否则可能造成查询结果错误。
问题简介:sql语句select字段不可以比group by字段多,否则可能造成查询结果错误。
- 问题类型:sql规范
- 开发模块:quan_yi_da_ping
- 问题描述:sql语句select字段不可以比group by字段多,否则可能造成查询结果错误。
收获:进行group by时,group by中的字段可以不出现在select中,但是select中只能有group by中的字段和函数。
注意:如果group by 字段对应的结果是多条数据,那么select字段不能唯一确定值,mysql会随机选一个值。
日期:2021.10.08
纠错前后对比:
前:
<select id="findDirectorWorkbenchNumTop10RespVo" resultType="com.unicom.uip.operation.dp.vo.DirectorWorkbenchNumVo">
select d.director_id , d.director, count(*) as num
from dp_tt_workbench w ,dp_tt_workbench_director d
where w.tt_id = d.workbench_tt_id
and w.item_type = '2'
and w.task_type in
<foreach collection="taskTypeList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
and (w.actual_finish_time = null or w.actual_finish_time >= #{dpDataVo.startDate})
and w .tt_create_time <= #{dpDataVo.endDate}
group by d.director_id , w.task_type
order by count(*) desc
limit 0, 10
</select>
后: