sql语句使用记录

(1)group by
今天遇到了一个使用group by的场景,sql语句如下

select to_char(pe.record_time, 'MM-DD') recordTime, round(avg(pe.num_value), 0) numValue ,pe.type
 FROM project_environment pe join project_info pi
 ON pi.id=pe.project_id
 WHERE pe.record_time >= '2021-05-19 18:48:04.496' and pe.record_time <='2021-06-19 18:48:04.496' and
       pi.id IN ( 1043 , 1042 , 1045 , 1051 , 1041 , 1000 , 1002 , 1003 , 1047 , 1050 , 1046 , 1044 , 1001 , 1040 )
    GROUP BY to_char(pe.record_time,'MM-DD'),pe.type;

这个语句是正确的,再使用了聚合函数后,在select后面出现的字段,要么在聚合函数,要么在group by里面 聚合函数包括sum() max() min()avg() count()
(注意)在聚合函数里面和在group by里面,返回的数据不一样,具体不一样在哪里要看实际场景
(2)取别名
给字段取别名的时候不能取跟原来字段一样的名字,不然也会报错,别名一定跟实体类的名称一样(因为实体类是驼峰形式,所以别名一般也是驼峰形式)

(3)
在进行时间范围内数据获取的时候,有时候要忽略秒,只要日期进行比较
比较的方法如下:

 <if test="startTime != null">
                and date_format(rc.create_time, '%Y-%m-%d') = #{startTime}
            </if>
            <if test="endTime != null">
                and date_format(rc.create_time, '%Y-%m-%d') = #{endTime}
            </if>

图片如下:

posted @ 2021-06-19 19:11  小猫爱哭鬼  阅读(50)  评论(0编辑  收藏  举报