行转列典型应用

前言

行列转换在数仓里面比较常用,典型的用户是统计销售额度

数据准备

# 建表
create table sales (
`state` varchar(20) comment '国家',
`mouth` varchar(20) comment '月份',
`quantity` int  comment '数量'
);
# 插入测试数据
insert into sales(`state`, `mouth`, `quantity`) values ('CA', 'Jul', 45);
insert into sales(`state`, `mouth`, `quantity`) values ('CA', 'Aug', 50);
insert into sales(`state`, `mouth`, `quantity`) values ('CA', 'Sep', 38);
insert into sales(`state`, `mouth`, `quantity`) values ('OR', 'Jul', 33);
insert into sales(`state`, `mouth`, `quantity`) values ('OR', 'Aug', 36);
insert into sales(`state`, `mouth`, `quantity`) values ('OR', 'Sep', 31);
insert into sales(`state`, `mouth`, `quantity`) values ('WA', 'Jul', 30);
insert into sales(`state`, `mouth`, `quantity`) values ('WA', 'Aug', 42);
insert into sales(`state`, `mouth`, `quantity`) values ('WA', 'Sep', 40);

插入数据详情:
在这里插入图片描述

行转列

select s.mouth, 
cast(sum(case s.state when 'CA' then s.quantity else 0 end) as char) as 'CA',
cast(sum(case s.state when 'OR' then s.quantity else 0 end) as char) as 'OR',
cast(sum(case s.state when 'WA' then s.quantity else 0 end) as char) as 'WA'
from sales s group by mouth

转换详情:
在这里插入图片描述

列转行

方式一:使用union函数

with tmp as (select s.mouth, 
cast(sum(case s.state when 'CA' then s.quantity else 0 end) as char) as 'CA',
cast(sum(case s.state when 'OR' then s.quantity else 0 end) as char) as 'OR',
cast(sum(case s.state when 'WA' then s.quantity else 0 end) as char) as 'WA'
from sales s group by mouth)
select 'CA' state ,mouth, tmp.ca as quantiy from tmp
union select 'OR' state ,mouth, tmp.OR as quantiy from tmp
union select 'WA' state ,mouth, tmp.WA as quantiy from tmp
order by state, mouth

转换详情:
在这里插入图片描述
方式二: insert all into … select 数据插入新表
该方式未在mysql8.0调试通过

# 建表
create table sales2 (
`state` varchar(20) comment '国家',
`mouth` varchar(20) comment '月份',
`quantity` int  comment '数量'
);
# 数据
# mysql 不支持 insert all into
with tmp as (select s.mouth, 
cast(sum(case s.state when 'CA' then s.quantity else 0 end) as char) as 'CA',
cast(sum(case s.state when 'OR' then s.quantity else 0 end) as char) as 'OR',
cast(sum(case s.state when 'WA' then s.quantity else 0 end) as char) as 'WA'
from sales s group by mouth)
insert into sales2(state,mouth,quantity) values ('CA', tmp.mouth, tmp.CA) 
into sales2(state,mouth,quantity) values('OR', tmp.mouth, tmp.OR) 
into sales2(state,mouth,quantity) values('WA', tmp.mouth, tmp.WA) 
select tmp.mouth, tmp.CA, tmp.OR, tmp.WA from tmp
commit; 

典型应用

-多维度统计销售情况

with mytmp as (select s.mouth, 
cast(sum(case s.state when 'CA' then s.quantity else 0 end) as char) as 'CA',
cast(sum(case s.state when 'OR' then s.quantity else 0 end) as char) as 'OR',
cast(sum(case s.state when 'WA' then s.quantity else 0 end) as char) as 'WA'
from sales s group by mouth)
select * ,
(mytmp.CA + mytmp.OR + mytmp.WA) as total from mytmp
union
select 'total' as mouth,
sum(tmp.CA) as 'CA', 
sum(tmp.OR) as 'OR', 
sum(tmp.WA) as 'WA', 
sum(tmp.total) as 'total'
from 
(select *,
(mytmp.CA+ mytmp.OR+ mytmp.WA) as total 
from mytmp)tmp

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 典型的数字化转型学者包括:穆尔·贝尔(Muir Berger)、詹姆斯·哈里斯(James Harris)、马克·布拉德利(Mark Bradford)和 安东尼·艾伦(Anthony Allen)。他们提出的观点是,要实现数字化转型,需要改变企业的思维方式,在软件、硬件和数据的基础上,建立一个技术和管理的框架,实现技术和运营的融合,以便提高企业的效率和竞争力。 ### 回答2: 研究数字化转型的典型学者及其观点有很多。以下是几位具有代表性的学者及其观点: 1. 埃里克·布雷尼奇(Erik Brynjolfsson)和安德鲁·麦卡菲(Andrew McAfee): 他们认为,数字化转型不仅仅是使用技术来提高效率和降低成本,更重要的是在创造新的价值和商业模式方面发挥作用。他们主张企业需要审视现有的业务模式,并积极创新,以适应数字化时代的变化。 2. 克劳德·舍弗勒(Claude Savièse): 舍弗勒认为,在数字化转型中,领导力起着至关重要的作用。他强调领导者需要具备与数字化相关的技术知识和洞察力,以便更好地指导组织实现转型。此外,他还强调领导者需要鼓励学习和创新的文化,并承担起员工培训和发展的责任。 3. 迈克尔·波特(Michael Porter): 波特的观点是,数字化转型并不仅仅是使用技术来优化现有业务,而应该将其视为重塑整个产业的机会。他认为,数字化转型可以引发创新、提高效率和打破行业壁垒,从而带来持续的竞争优势。他主张企业应该重新审视价值链,并利用数字技术来改善供应链、客户体验和市场定位。 4. 陈明剑(Ming-Je Tang): 陈明剑认为,数字化转型将带来深远的社会和经济影响。他强调,这种转型需要管理者转变思维方式,从“物质思维”转向“信息思维”,同时要重视数据资产和知识管理。此外,他还强调数字化转型需要建立合适的组织结构和培养具备数字技术能力的人才。 这些学者的观点各有侧重,但共同强调数字化转型需要企业和组织在技术、创新、领导力和组织文化等方面进行深入思考和改变。 ### 回答3: 数字化转型是目前全球范围内的研究和实践的热点之一。以下是一些典型学者及他们的观点: 1. 克劳德·舍纳:作为数字化转型的先驱之一,他强调了数字化转型对企业战略的核心作用。他认为,数字化转型不仅仅是技术的应用,更是从整体上改变企业的组织结构、业务模式和价值创造方式。 2. 迈克尔·波特:他提出了“数字化闭环”模型,强调数字化转型需要将企业整合起来,实现产品、流程、客户和价值创造的全面互联互通。他认为数字化转型的关键在于打破传统的垂直组织架构,通过横向整合来实现不断创新和协同。 3. 安德鲁·麦卡菲:他强调数字化转型需要将人放在中心位置。他认为数字化转型不仅仅是技术的革新,更关注如何通过技术改变和提升员工和用户之间的互动和体验,以实现业务的持续创新和增长。 4. 格哈特·波珀:他提出了“双方面转型”理论,强调数字化转型需要在技术和组织两个方面进行。他认为技术的引入必须与组织结构和文化的转变相结合,才能实现数字化转型的成功。 5. 比尤·拉巴尼:他研究了数字化转型对于组织创新和领导力的影响。他认为数字化转型需要建立灵活的组织架构,通过领导者的驱动和激励来推动数字化创新,以应对快速变化的市场环境。 这些学者和观点代表了数字化转型研究领域中的一部分。在现实应用中,学者们的研究成果和观点对于指导企业实施数字化转型策略具有重要的借鉴意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值