当前位置: 首页 > news >正文

凌河锦州网站建设网站开发项目经理注意事项

凌河锦州网站建设,网站开发项目经理注意事项,甘肃建设住房厅网站,信阳住房和城乡建设局网站行转列方法总结1、使用case…when…then2、使用SUM(IF()) 生成列3、使用SUM(IF()) 生成列 WITH ROLLUP 生成汇总行4、使用SUM(IF()) 生成列 UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total5、使用SUM(IF()) 生成列#xff0c;直接生成汇总结果#xff0c;不再利用…行转列方法总结1、使用case…when…then2、使用SUM(IF()) 生成列3、使用SUM(IF()) 生成列 WITH ROLLUP 生成汇总行4、使用SUM(IF()) 生成列 UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total5、使用SUM(IF()) 生成列直接生成汇总结果不再利用子查询环境准备建表语句 初始化数据-- house.base_score definitionCREATE TABLE base_score (id int NOT NULL AUTO_INCREMENT,userid varchar(20) NOT NULL COMMENT 用户id,subject varchar(20) DEFAULT NULL COMMENT 科目,score double DEFAULT NULL COMMENT 成绩,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT11 DEFAULT CHARSETutf8;--- 插入数据INSERT INTO base_score(userid,subject,score) VALUES (001,语文,90); INSERT INTO base_score(userid,subject,score) VALUES (001,数学,92); INSERT INTO base_score(userid,subject,score) VALUES (001,英语,80); INSERT INTO base_score(userid,subject,score) VALUES (002,语文,88); INSERT INTO base_score(userid,subject,score) VALUES (002,数学,90); INSERT INTO base_score(userid,subject,score) VALUES (002,英语,75.5); INSERT INTO base_score(userid,subject,score) VALUES (003,语文,70); INSERT INTO base_score(userid,subject,score) VALUES (003,数学,85); INSERT INTO base_score(userid,subject,score) VALUES (003,英语,90); INSERT INTO base_score(userid,subject,score) VALUES (003,政治,82);使用case…when…then 实现行转列-- 通过case...when...then 实现行记录转列记录 SELECT userid, SUM(CASE subject WHEN 语文 THEN score ELSE 0 END) as 语文, SUM(CASE subject WHEN 数学 THEN score ELSE 0 END) as 数学, SUM(CASE subject WHEN 英语 THEN score ELSE 0 END) as 英语, SUM(CASE subject WHEN 政治 THEN score ELSE 0 END) as 政治 FROM base_score GROUP BY userid使用SUM(IF()) 生成行转列-- 使用sum(if) 实现行记录转列记录 SELECT userid, SUM(IF(subject语文,score,0)) as 语文, SUM(IF(subject数学,score,0)) as 数学, SUM(IF(subject英语,score,0)) as 英语, SUM(IF(subject政治,score,0)) as 政治 FROM base_score GROUP BY userid温馨提示1SUM() 是为了能够使用GROUP BY根据userid进行分组因为每一个userid对应的subject语文的记录只有一条所以SUM() 的值就等于对应那一条记录的score的值。假如userid ‘001’ and subject‘语文’ 的记录有两条则此时SUM() 的值将会是这两条记录的和同理使用Max()的值将会是这两条记录里面值最大的一个。但是正常情况下一个user对应一个subject只有一个分数因此可以使用SUM()、MAX()、MIN()、AVG()等聚合函数都可以达到行转列的效果。2IF(subject‘语文’,score,0) 作为条件即对所有subject语文’的记录的score字段进行SUM()、MAX()、MIN()、AVG()操作如果score没有值则默认为0。使用SUM(IF()) 生成列 WITH ROLLUP 生成汇总行-- 使用rollup 生成汇总记录SELECT userid,IFNULL(subject,total) AS subject,SUM(score) AS scoreFROM base_scoreGROUP BY userid,subjectWITH ROLLUPHAVING userid IS NOT NULL-- 使用sum(if) 实现行记录转列记录 WITH ROLLUP 生成汇总行SELECT IFNULL(userid,total) AS userid, SUM(IF(subject语文,score,0)) as 语文, SUM(IF(subject数学,score,0)) as 数学, SUM(IF(subject英语,score,0)) as 英语, SUM(IF(subject政治,score,0)) as 政治, SUM(IF(subjecttotal,score,0)) AS 总计 FROM (SELECT userid,IFNULL(subject,total) AS subject,SUM(score) AS scoreFROM base_scoreGROUP BY userid,subjectWITH ROLLUPHAVING userid IS NOT NULL ) as tmp GROUP BY userid WITH ROLLUP;使用SUM(IF()) 生成列 UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total-- 利用SUM(IF()) 生成列 UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total SELECT userid, SUM(IF(subject语文,score,0)) AS 语文, SUM(IF(subject数学,score,0)) AS 数学, SUM(IF(subject英语,score,0)) AS 英语, SUM(IF(subject政治,score,0)) AS 政治, SUM(score) AS TOTAL FROM base_score GROUP BY userid UNION SELECT TOTAL, SUM(IF(subject语文,score,0)) AS 语文, SUM(IF(subject数学,score,0)) AS 数学, SUM(IF(subject英语,score,0)) AS 英语, SUM(IF(subject政治,score,0)) AS 政治, SUM(score) FROM base_score利用SUM(IF()) 生成列直接生成结果不再利用子查询-- 利用SUM(IF()) 生成列 with rollup 汇总列直接生成结果不再利用子查询 SELECT userid, SUM(IF(subject语文,score,0)) AS 语文, SUM(IF(subject数学,score,0)) AS 数学, SUM(IF(subject英语,score,0)) AS 英语, SUM(IF(subject政治,score,0)) AS 政治, SUM(score) AS TOTAL FROM base_score GROUP BY userid WITH ROLLUP;列转行方法总结环境准备建表语句 初始化数据CREATE TABLE base_score1(id INT(11) NOT NULL auto_increment,userid VARCHAR(20) NOT NULL COMMENT 用户id,cn_score DOUBLE COMMENT 语文成绩,math_score DOUBLE COMMENT 数学成绩,en_score DOUBLE COMMENT 英语成绩,po_score DOUBLE COMMENT 政治成绩,PRIMARY KEY(id) )ENGINE INNODB DEFAULT CHARSET utf8;INSERT INTO base_score1(userid,cn_score,math_score,en_score,po_score) VALUES (001,90,92,80,0); INSERT INTO base_score1(userid,cn_score,math_score,en_score,po_score) VALUES (002,88,90,75.5,0); INSERT INTO base_score1(userid,cn_score,math_score,en_score,po_score) VALUES (003,70,85,90,82);select * from base_score1SELECT userid,语文 AS course,cn_score AS score FROM base_score1 UNION ALL SELECT userid,数学 AS course,math_score AS score FROM base_score1 UNION ALL SELECT userid,英语 AS course,en_score AS score FROM base_score1 UNION ALL SELECT userid,政治 AS course,po_score AS score FROM base_score1拓展UNION与UNION ALL的区别对重复结果的处理UNION会去掉重复记录UNION ALL不会对排序的处理UNION会排序UNION ALL只是简单地将两个结果集合并效率方面的区别因为UNION 会做去重和排序处理因此效率比UNION ALL慢很多
http://www.hkea.cn/news/14551809/

相关文章:

  • 网站导航设计模板源码wordpress页面文字首行缩进
  • 对伊利网站建设建议字节跳动小程序官网
  • 广州海珠网站开发设计网络团队
  • 2018如何做网站外链无锡市住房和城乡建设部网站
  • 经开区网站建设wordpress 上传文件 插件
  • 做网站如何选择数据源高仿做的最好的网站
  • 网站类型有网站推广应该注意什么
  • 视频教学网站怎么做网站开发一般用什么服务器
  • 建站模板下载后表单怎么修改青岛专业公司网站设计公司
  • 没有公司怎么做网站权威发布的最新通告
  • 域名注册网站有哪些二人对战的微信小程序
  • 合租网站设计用于手机的导航网站要怎么做
  • 合肥企业制作网站head first wordpress 中文版
  • 帝国cms 网站地图标签建设网站有什么好处
  • 东莞工作招聘网优化好的网站做企业网站
  • 运营一个网站的费用做网站的开发软件
  • 怎么发布自己的网站传奇怎么做充值网站
  • 网站自适应框架西安信创
  • 360免费建站全屋定制设计网站推荐
  • 网站建设调查回访表做网站点击率赚钱
  • 东至网站定制国内vps做网站备案
  • 网站建设流程教程有什么做视频的免费素材网站
  • 网站模版二次开发跟手工制作区别网站空间管理系统
  • 给企业做网站如何定价vimwiki wordpress
  • Linux哪个版本做网站好网站见建设
  • 网站建设技术部职责my77731免费域名查询
  • wordpress怎么设置title优化seo可以从以下几个方面进行
  • 河南网站建设yijuce管理案例网站
  • html做网站实战教程百度手机app下载安装
  • 河南免费网站建设公司四川省建设工程质量监理协会网站