日期 井号 日产液 日产油
2013/1/1 古256 20.7 5.0
2013/1/1 古257 14.7 4.0
2013/1/1 古258 17.4 3.5
2013/1/1 古259 16.5 3.0
2013/1/1 古260 7.0 2.0
2013/1/1 古261 17.4 2.5
2013/1/1 古262 16.5 0.5
2013/1/1 古263 7.0 0.8
2013/1/1 古264 16.5 0.0
2013/1/1 古265 7.0 0.1
2013/1/1 古266 17.4 4.0
2013/1/2 古256 20.7 6.0
2013/1/2 古257 14.7 5.0
2013/1/2 古258 17.4 4.0
2013/1/2 古259 16.5 3.0
2013/1/2 古260 7.0 2.6
2013/1/2 古261 17.4 2.7
2013/1/2 古262 16.5 0.4
2013/1/2 古263 7.0 0.6
2013/1/2 古264 16.5 0.0
2013/1/2 古265 7.0 0.3
2013/1/2 古266 17.4 5.0 目的:把上面数据进行分类,日产油大于等于3吨的求和,大于1吨小于3吨的求和,小于1吨的求和。每天单独汇总
结果如下格式(说明列是为了更好的懂SQL达到的目的):
日期 日产液 日产油 说明
2013/1/1 70.2 16.5 A类
2013/1/1 40.9 12.5 B类
2013/1/1 64.4 1.4 C类
2013/1/2 86.7 23 A类
2013/1/2 24.4 5.3 B类
2013/1/2 47 1.3 C类如何写SQL 语句完成以上功能呢?SQL 分类汇总 复杂性高SQL汇总查询
2013/1/1 古256 20.7 5.0
2013/1/1 古257 14.7 4.0
2013/1/1 古258 17.4 3.5
2013/1/1 古259 16.5 3.0
2013/1/1 古260 7.0 2.0
2013/1/1 古261 17.4 2.5
2013/1/1 古262 16.5 0.5
2013/1/1 古263 7.0 0.8
2013/1/1 古264 16.5 0.0
2013/1/1 古265 7.0 0.1
2013/1/1 古266 17.4 4.0
2013/1/2 古256 20.7 6.0
2013/1/2 古257 14.7 5.0
2013/1/2 古258 17.4 4.0
2013/1/2 古259 16.5 3.0
2013/1/2 古260 7.0 2.6
2013/1/2 古261 17.4 2.7
2013/1/2 古262 16.5 0.4
2013/1/2 古263 7.0 0.6
2013/1/2 古264 16.5 0.0
2013/1/2 古265 7.0 0.3
2013/1/2 古266 17.4 5.0 目的:把上面数据进行分类,日产油大于等于3吨的求和,大于1吨小于3吨的求和,小于1吨的求和。每天单独汇总
结果如下格式(说明列是为了更好的懂SQL达到的目的):
日期 日产液 日产油 说明
2013/1/1 70.2 16.5 A类
2013/1/1 40.9 12.5 B类
2013/1/1 64.4 1.4 C类
2013/1/2 86.7 23 A类
2013/1/2 24.4 5.3 B类
2013/1/2 47 1.3 C类如何写SQL 语句完成以上功能呢?SQL 分类汇总 复杂性高SQL汇总查询
sum(t1.pro1) "日产液",
sum(t1.pro2) "日产油",
t1.descrip "说明"
from (select t.time,
t.num,
t.pro1,
t.pro2,
case
when t.pro2 >= 3 then
'A类'
when (t.pro2 < 3 and t.pro2 >1) then
'B类'
else
'C类'
end descrip
from test t) t1
group by t1.time, t1.descrip
order by t1.time,t1.descrip;注:=1t 的放在C类的结果:
SELECT 'TypeA' type,0 下限,0.9999 上限 from dual union
SELECT 'TypeB',1,2.9999 from dual union
SELECT 'TypeC',3,99999999 from dual)
SELECT 日期,sum(日产液),sum(日产油),type from t1,tlv
WHERE t1.日产油 between 下限 and 上限
GROUP BY 日期,type
如果有经常计算各种分类的,可以create真的tlv来使用,更灵活方便