博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 动态行转列
阅读量:4613 次
发布时间:2019-06-09

本文共 1262 字,大约阅读时间需要 4 分钟。

表结果: create table user(id int ,username varchar(10),create_time datetime,type int )insert into user (`id`,`username`,`create_time`,`type`)values ('1','张三','2019-04-25 14:36:41','1'),('1','张三','2019-04-25 14:37:10','2'),('1','张三','2019-04-25 14:37:26','1'),('1','张三','2019-04-27 14:38:08','1'),('1','张三','2019-04-26 14:36:02','1'),('1','张三','2019-04-26 14:36:19','2'),('1','李四','2019-04-25 14:39:50','1'),('1','李四','2019-04-26 14:39:49','1'),('1','李四','2019-04-26 14:39:48','1'),('1','李四','2019-04-27 14:39:48','1'),('1','李四','2019-04-27 14:39:44','1'),('1','王五','2019-04-25 14:36:41','1');

数据表:

静态用 case when then 

mysql  只能,动态用存储 ,

SQL Server中行列转换用 Pivot UnPivot

结果:

sql:

SET @str=''; set @sql_temp=''; SELECT @str:=CONCAT(@str,'sum(IF(left(create_time,10)=\'',create_time,'\'',',1,0)',') AS ' ,'''',create_time,'''',',') as aa into @sql_temp FROM (SELECT left(create_time,10) as create_time  FROM `user` group by left(create_time,10)) A order by length(aa) desc limit 1; SET @result_sql=CONCAT('SELECT  user.username, ',LEFT(@sql_temp,char_length(@sql_temp)-1),'  FROM user GROUP BY username' ); PREPARE stmt FROM @result_sql; EXECUTE stmt ; deallocate prepare stmt

 

posted on
2019-04-27 22:20 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/1-Admin/p/10780745.html

你可能感兴趣的文章
【文文殿下】网络流24题计划
查看>>
Coursera台大机器学习课程笔记6 -- The VC Dimension
查看>>
Ubuntu 16 04 安装KVM
查看>>
【openlayers】CSS3样式的Popups
查看>>
常用表单及控件测试用例检查点总结
查看>>
UVA5874 Social Holidaying 二分匹配
查看>>
网络流24题 餐巾计划(费用流)
查看>>
Codeforces Round #478 (Div. 2) D Ghosts 会超时的判断两个之间关系,可以用map
查看>>
box-shadow
查看>>
select * 和select 1 以及 select count(*) 和select count(1)的区别
查看>>
进度条04
查看>>
Silverlight RadGridView的HeaderCellStyle样式
查看>>
IE兼容CSS3圆角border-radius的方法
查看>>
Elsevier期刊投稿状态
查看>>
Heartbeat+LVS构建高可用负载均衡集群
查看>>
多表查询
查看>>
springMVC_数据的处理过程
查看>>
ORM + Mysql配置
查看>>
18 python 初学(time、random 模块)
查看>>
那些年我们扔过的漂流瓶
查看>>