首页 > 技术文章 > 分组求最大值,最小值 使用开窗函数经验总结

chenli0513 2016-06-29 17:12 原文

select distinct TT.prod_id, tt.creteTime, tt.inspection_time, tt.cnt

from (select s.prod_id,
min(s.datetime_created) over(partition by s.prod_id) as creteTime,
max(s.inspection_time) over(partition by s.prod_id) as inspection_time,

sum(s.complete_count) over(partition by s.prod_id) as cnt

FROM qms.oqc_inspection_sample s
WHERE length(s.prod_id) = 14 and s.prod_id like '6%'
and s.inspection_result = '合格'
and s.status in ('已检验', '已生成报告')) tt

  这里使用了分析函数,使用分组中的一组,进行求和 ,求最大值,最小值。

问题:

 一:我这里使用了 DISTINCT去重,有没有效率更好的方式去重呢

 二:分析函数不能使用条件过滤,比如某个分组的数据,我想只取某个字段等1的值的求和。

推荐阅读