请教MYSQL中行列转换问题?谢谢
时间:2011-09-09
来源:互联网
CREATE TABLE `sys_online` (
`uid` int(11) NOT NULL,
`lastupdate` int(11) NOT NULL DEFAULT '0',
`onlinetime` int(11) NOT NULL DEFAULT '0',
`online` int(11) DEFAULT '0' COMMENT '鏈€杩戜竴娆′笂绾挎椂闂?,
`day` int(11) DEFAULT '0' COMMENT '浠婂ぉ',
`daytime` int(11) DEFAULT '0' COMMENT '褰撳ぉ绱Н鏃堕棿',
`logincount` int(11) DEFAULT NULL,
PRIMARY KEY (`uid`),
KEY `lastupdate` (`lastupdate`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='鍦ㄧ嚎鎯呭喌'
将表结构中的内容转换为不同时间段内的注册人数:即显示为:
1分钟内/1-3分钟/3-5分钟/5-10分钟/10-15分钟/15-30分钟/30-60分钟/1-2小时/2-3小时/3小时以上/日期
其中onlinetime为在线时长,如何写SQL,谢谢!
`uid` int(11) NOT NULL,
`lastupdate` int(11) NOT NULL DEFAULT '0',
`onlinetime` int(11) NOT NULL DEFAULT '0',
`online` int(11) DEFAULT '0' COMMENT '鏈€杩戜竴娆′笂绾挎椂闂?,
`day` int(11) DEFAULT '0' COMMENT '浠婂ぉ',
`daytime` int(11) DEFAULT '0' COMMENT '褰撳ぉ绱Н鏃堕棿',
`logincount` int(11) DEFAULT NULL,
PRIMARY KEY (`uid`),
KEY `lastupdate` (`lastupdate`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='鍦ㄧ嚎鎯呭喌'
将表结构中的内容转换为不同时间段内的注册人数:即显示为:
1分钟内/1-3分钟/3-5分钟/5-10分钟/10-15分钟/15-30分钟/30-60分钟/1-2小时/2-3小时/3小时以上/日期
其中onlinetime为在线时长,如何写SQL,谢谢!
作者: linghongjun 发布时间: 2011-09-09
发错版了。
作者: softroad 发布时间: 2011-09-09
case when then else end
作者: hlj845629143 发布时间: 2011-09-09
create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
select b.姓名,(select 分数 from tb as a where a.姓名=b.姓名 and a.课程='语文') as 语文,
(select 分数 from tb as a where a.姓名=b.姓名 and a.课程='数学') as 数学,
(select 分数 from tb as a where a.姓名=b.姓名 and a.课程='物理') as 物理,
sum(b.分数) as 总分
from tb as b group by b.姓名 order by 总分 desc
好像还可以用 case when 简化代码....但我不太会用..
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
select b.姓名,(select 分数 from tb as a where a.姓名=b.姓名 and a.课程='语文') as 语文,
(select 分数 from tb as a where a.姓名=b.姓名 and a.课程='数学') as 数学,
(select 分数 from tb as a where a.姓名=b.姓名 and a.课程='物理') as 物理,
sum(b.分数) as 总分
from tb as b group by b.姓名 order by 总分 desc
好像还可以用 case when 简化代码....但我不太会用..
作者: ss270991 发布时间: 2011-09-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28