Mysql实现行转列

2 篇文章 0 订阅

create table loc(loc varchar(50),xiaoqu varchar(50),addr varchar(50),company varchar(50))

 

插入数据

区域

小区名称

房屋地址

中介公司

宝山

庆安三村

绥化路52弄

A

宝山

月浦十村

月浦十村67号

B

宝山

盛桥三村

盛桥三村94号

C

宝山

月浦四村

月浦四村42号

D

宝山

乐业二村

春雷路332弄

E

宝山

月浦二村

月浦二村19号

B

宝山

阳光美林苑

月富路218弄

C

宝山

月浦六村

月浦六村7号

F

宝山

春雷路431弄小区

春雷路431弄

B

宝山

新月明珠园

塔源路150弄

B

宝山

盛桥三村

盛桥三村1号

G

 

 

SET @sq1='';

SELECT @sq1:=CONCAT(@sq1,'SUM(IF(xiaoqu=\'',xiaoqu,'\'',',1,0)) AS ',xiaoqu,',') as col4 FROM (select distinct xiaoqu from loc) a

SET @sq2=CONCAT('SELECT ifnull(company,\'total\') AS companyname,count(distinct xiaoqu) as xiaoqucnt,',LEFT(@sq1,LENGTH(@sq1)-1),' sum(xiaoqu) as total  FROM  loc GROUP BY company WITH ROLLUP');

PREPARE statm FROM @sq2;

EXECUTE statm;


输出结果

companyname xiaoqucnt 庆安三村 月浦十村 盛桥三村 月浦四村 乐业二村 月浦二村 阳光美林苑 月浦六村 春雷路431弄小区 新月明珠园 total
A 1 1 0 0 0 0 0 0 0 0 0 0
B 4 0 1 0 0 0 1 0 0 1 1 0
C 2 0 0 1 0 0 0 1 0 0 0 0
D 1 0 0 0 1 0 0 0 0 0 0 0
E 1 0 0 0 0 1 0 0 0 0 0 0
F 1 0 0 0 0 0 0 0 1 0 0 0
G 1 0 0 1 0 0 0 0 0 0 0 0
total 10 1 1 2 1 1 1 1 1 1 1 0


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值