根据传入的参数是否有值来决定select的列是否有该字段,以便group by
SELECT
f_hour AS Hour,
MAX(`f_speed`) AS max,
MIN(`f_speed`)AS min,
AVG(`f_speed`)AS avg,
COUNT(*)AS hourCount,
NULLIF (#{taskName},NULL )AS taskName
FROM `f_record`
<include refid="page_where_sql"/>
GROUP BY `f_hour`
<!-- 查询Where语句 -->
<sql id="page_where_sql">
<where>
1=1
<if test="taskName!=null">AND task_name = #{taskName} </if>
<if test="Date!=null">AND f_date = #{Date}</if>
</where>
</sql>
- NULLIF(expr1,expr2) 的用法: 如果expr1 = expr2 成立,那么返回值为NULL,否则返回值为 expr1。
- ISNULL(Expression1,Expression2):给定两个参数Expression1和Expression2,如果Expression1是NULL,那么返回Expression2,否则返回Expression1。