首页 > 学院 > 开发设计 > 正文

统计增加一个平均时间字段

2019-11-08 20:54:21
字体:
来源:转载
供稿:网友
问题描述 对已有的统计数据,增加一个求两个时间差的列,要求 (1).查询结果增加一列 (2).结果是表中两个时间字段的差 (3).查询的时间差要在某一条件下 (4).对这个时间求平均值解决思路 对原始的sql进行改造

知识点 ceil函数求两个时间的差,默认单位是天 CASE WHEN when model.a=’1’ THEN model.b END增加条件

解决方法和注意问题

SELECT model.p, CAST( SUM( CASE WHEN model.a='1' THEN (ceil((model.LASTDATE - model.STARTDATE))) END) AS VARCHAR) as avgDateFROM MAIN modelWHERE 1=1GROUP BY model.p注:select a, b, cast(null as varchar), d 是强制类型转换,将null转换为varchar,防止hibernate转换报错;model.LASTDATE是时间类型数据。

5. 总结 熟悉了ceil函数的应用,以及to_char,to_date函数,decode函数,case when 条件。以及cast( a AS VARCHAR)解决 hibernate执行原生sql报错: No Dialect mapping for JDBC type: 1111,的解决办法。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表