将数据分级汇总实现的3种方法比较

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

代码:--------------------------------------------

select code 代码 , substrb(' ',1,item_level*2-2)||b.reg_type 登记注册类型, cnt 家数 from

(

(select substr(z01_08,1,1)||'00' code ,count(*) cnt

from cj601

group by substr(z01_08,1,1))

union

(select substr(z01_08,1,2)||'0' code ,count(*) cnt

from cj601

group by substr(z01_08,1,2))

union

(select substr(z01_08,1,3) code ,count(*) cnt

from cj601

group by substr(z01_08,1,3))

)

c, djzclx b where c.code=b.reg_code;

代码 登记注册类型 家数

------ --------------------------------------- ---------

100 内资企业

110 国有企业

120 集体企业

130 股份合作企业

140 联营企业

141 国有联营企业

142 集体联营企业

143 国有与集体联营企业

149 其他联营企业

150 有限责任公司

151 国有独资公司

159 其他有限责任公司

160 股份有限公司

170 私营企业

171 私营独资企业

172 私营合伙企业

173 私营有限责任公司

174 私营股份有限公司

200 港、澳、台商投资企业

210 合资经营企业(港或澳、台资)

220 合作经营企业(港或澳、台资)

230 港、澳、台商独资经营企业

240 港、澳、台商投资股份有限公司

300 外商投资企业

310 中外合资经营企业

320 中外合作经营企业

330 外资企业

340 外商投资股份有限公司

----

lastwinner

type: substr(z01_08,1,1)||'00'

subtype : substr(z01_08,1,2)||'0'

sub-subtype : substr(z01_08,1,3)

select ..........

group by rollup(type, subtype, sub-subtype)

试试看

代码:

----------------------------------------------------------

select code 代码 , substrb(' ',1,item_level*2-2)||b.reg_type 登记注册类型, cnt 家数 from

(

select

case when code3 is not null then code3

when code2<>'0' then code2

else code1

end code,cnt

from (

select substr(z01_08,1,1)||'00' code1 , substr(z01_08,1,2)||'0' code2 , substr(z01_08,1,3) code3 ,count(*) cnt

from j601

group by rollup(substr(z01_08,1,1),substr(z01_08,1,2),substr(z01_08,1,3))

) where code2<>code3 or code3 is null and code1<>'00'

)

c, djzclx b where c.code=b.reg_code

order by 1

;

最终版14.89秒

代码:------------------------------------------------------------

select code 代码 , substrb(' ',1,item_level*2-2)||b.reg_type 登记注册类型, cnt 家数 from

(

select

case when code3 is not null then code3

when code2<>'0' then code2

else code1

end code,cnt

from (

select substr(z01_08,1,1)||'00' code1 , substr(z01_08,1,2)||'0' code2 , substr(z01_08,1,3) code3 ,sum(cnt) cnt

&nbs

[1] [2] [3] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航