那我要为以上这段代码再计算出各个产业的占比该怎么写
时间: 2024-03-02 19:48:53 浏览: 64
全国各省份计算机服务和软件从业人员占比数据2011-2021年
您可以在第二个子查询 b01 中,增加一列用于计算各个产业的占比,例如:
```sql
with a01 as (
select
case
when prodlinename in ('冷柜', '冰箱') then '制冷'
when prodlinename in ('商空', '智慧楼宇') then '智慧楼宇'
when prodlinename in ('家空') then '空调'
else prodlinename
end industry,
mouldno mould_code,
factory_name,
city,
custcode,
custname
from tt_hmzy_haier_mould_iot_fenqu a
left join dim_udo_model_dim_asset b
on a.mouldno = b.model_code
where prodlinename in('冷柜', '冰箱', '商空', '家空', '厨电', '洗涤', '热水器', '智慧楼宇')
),
b01 as(
select
'20230602' code,
industry,
count(mould_code) mould_num,
count(mould_code)*100.0/sum(count(mould_code)) over() as industry_percentage
from a01
group by industry
)
select a.*, b.*
from b01 a
left join (
select
'20230602' code,
'全产线' industry,
count(distinct mould_code) mould_num,
count(distinct mould_code)*100.0/sum(count(distinct mould_code)) over() as industry_percentage
from a01
) b
on a.code = b.code
```
在上面的代码中,我们在第二个子查询 b01 中增加了一列 industry_percentage,用于计算各个产业的占比。具体来说,我们使用 COUNT() 函数和 GROUP BY 语句计算了每个行业下的模具数量,然后通过 SUM() 函数和 OVER() 子句计算了所有行业的模具数量总和,并通过乘以 100.0 和除以总和的方式,计算出了每个行业的占比。
请注意,由于我们将占比计算放在了 SQL 查询语句中,因此,该查询语句的输出结果将包含每个行业的模具数量和占比。
阅读全文