+ -
当前位置:首页 → 问答吧 → 请教MYSQL中行列转换问题?谢谢

请教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,谢谢!
   

作者: 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 简化代码....但我不太会用..

作者: ss270991   发布时间: 2011-09-09

热门下载

更多