常用sql
2016-06-02 00:00
218 查看
摘要: 常用sql
======================行列转换=====================
CREATE TABLE `table_name` (
`id` int(11) NOT NULL,
`col1` char(2) DEFAULT NULL,
`col2` char(2) DEFAULT NULL,
`col3` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into table_name values (1 ,'A1','B1',9), (2 ,'A2','B1',7), (3 ,'A3','B1',4), (4 ,'A4','B1',2),
(5 ,'A1','B2',2), (6 ,'A2','B2',9), (7 ,'A3','B2',8), (8 ,'A4','B2',5), (9 ,'A1','B3',1), (10 ,'A2','B3',8),
(11 ,'A3','B3',8), (12 ,'A4','B3',6), (13 ,'A1','B4',8), (14 ,'A2','B4',2), (15 ,'A3','B4',6), (16 ,'A4','B4',9),
(17 ,'A1','B4',3), (18 ,'A2','B4',5), (19 ,'A3','B4',2), (20 ,'A4','B4',5);
SELECT
ifnull(col1, 'total') AS col1,
sum(IF(col2 = 'B1', col3, 0)) AS B1,
sum(IF(col2 = 'B2', col3, 0)) AS B2,
sum(IF(col2 = 'B3', col3, 0)) AS B3,
sum(IF(col2 = 'B4', col3, 0)) AS B4,
SUM(col3) AS TOTAL
FROM
table_name
GROUP BY
col1 WITH ROLLUP;
=======================1======================
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`stu_name` varchar(40) DEFAULT NULL,
`stu_score` double(20,0) DEFAULT NULL,
`class_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;
INSERT INTO `student` VALUES ('1', '赵云', '20', '1');
INSERT INTO `student` VALUES ('2', '张飞', '30', '1');
INSERT INTO `student` VALUES ('3', '关羽', '30', '1');
INSERT INTO `student` VALUES ('4', '刘备', '40', '1');
INSERT INTO `student` VALUES ('5', '曹操', '40', '2');
INSERT INTO `student` VALUES ('6', '许褚', '30', '2');
INSERT INTO `student` VALUES ('8', '荀彧', '28', '2');
INSERT INTO `student` VALUES ('9', '荀攸', '29', '2');
INSERT INTO `student` VALUES ('10', '郭嘉', '24', '2');
INSERT INTO `student` VALUES ('11', '诸葛亮', '39', '1');
INSERT INTO `student` VALUES ('12', '孙权', '40', '3');
INSERT INTO `student` VALUES ('13', '孙权', '38', '3');
INSERT INTO `student` VALUES ('14', '孙坚', '31', '3');
INSERT INTO `student` VALUES ('15', '小乔', '20', '3');
INSERT INTO `student` VALUES ('16', '大桥', '20', '3');
INSERT INTO `student` VALUES ('17', '鲁肃', '34', '3');
INSERT INTO `student` VALUES ('18', '陆逊', '31', '3');
INSERT INTO `student` VALUES ('19', '吕蒙', '31', '3');
SELECT * FROM
(
SELECT IFNULL(class_id,'总计') as classid,SUM(stu_score) as score FROM student GROUP BY class_id WITH ROLLUP
) A
ORDER BY score
SELECT broswer NAME, count(1) VALUE , CASE WHEN broswer = 'Firefox' THEN '#FF00FF' WHEN broswer = 'IE' THEN '#FFFF00' ELSE '#43CD80' END color FROM t_s_log GROUP BY broswer
======================行列转换=====================
CREATE TABLE `table_name` (
`id` int(11) NOT NULL,
`col1` char(2) DEFAULT NULL,
`col2` char(2) DEFAULT NULL,
`col3` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into table_name values (1 ,'A1','B1',9), (2 ,'A2','B1',7), (3 ,'A3','B1',4), (4 ,'A4','B1',2),
(5 ,'A1','B2',2), (6 ,'A2','B2',9), (7 ,'A3','B2',8), (8 ,'A4','B2',5), (9 ,'A1','B3',1), (10 ,'A2','B3',8),
(11 ,'A3','B3',8), (12 ,'A4','B3',6), (13 ,'A1','B4',8), (14 ,'A2','B4',2), (15 ,'A3','B4',6), (16 ,'A4','B4',9),
(17 ,'A1','B4',3), (18 ,'A2','B4',5), (19 ,'A3','B4',2), (20 ,'A4','B4',5);
SELECT
ifnull(col1, 'total') AS col1,
sum(IF(col2 = 'B1', col3, 0)) AS B1,
sum(IF(col2 = 'B2', col3, 0)) AS B2,
sum(IF(col2 = 'B3', col3, 0)) AS B3,
sum(IF(col2 = 'B4', col3, 0)) AS B4,
SUM(col3) AS TOTAL
FROM
table_name
GROUP BY
col1 WITH ROLLUP;
=======================1======================
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`stu_name` varchar(40) DEFAULT NULL,
`stu_score` double(20,0) DEFAULT NULL,
`class_id` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;
INSERT INTO `student` VALUES ('1', '赵云', '20', '1');
INSERT INTO `student` VALUES ('2', '张飞', '30', '1');
INSERT INTO `student` VALUES ('3', '关羽', '30', '1');
INSERT INTO `student` VALUES ('4', '刘备', '40', '1');
INSERT INTO `student` VALUES ('5', '曹操', '40', '2');
INSERT INTO `student` VALUES ('6', '许褚', '30', '2');
INSERT INTO `student` VALUES ('8', '荀彧', '28', '2');
INSERT INTO `student` VALUES ('9', '荀攸', '29', '2');
INSERT INTO `student` VALUES ('10', '郭嘉', '24', '2');
INSERT INTO `student` VALUES ('11', '诸葛亮', '39', '1');
INSERT INTO `student` VALUES ('12', '孙权', '40', '3');
INSERT INTO `student` VALUES ('13', '孙权', '38', '3');
INSERT INTO `student` VALUES ('14', '孙坚', '31', '3');
INSERT INTO `student` VALUES ('15', '小乔', '20', '3');
INSERT INTO `student` VALUES ('16', '大桥', '20', '3');
INSERT INTO `student` VALUES ('17', '鲁肃', '34', '3');
INSERT INTO `student` VALUES ('18', '陆逊', '31', '3');
INSERT INTO `student` VALUES ('19', '吕蒙', '31', '3');
SELECT * FROM
(
SELECT IFNULL(class_id,'总计') as classid,SUM(stu_score) as score FROM student GROUP BY class_id WITH ROLLUP
) A
ORDER BY score
相关文章推荐
- 2.0.0、mongodb细说高级操作
- 3、mongodb索引
- mongodb的主从复制
- The Network Adapter could not establish the connection解决方案
- 简单sql改写
- Ansible自动部署LNAMP
- oracle 查询上机实验
- SQL 部分函数的使用,子查询,group by,虚拟字段,case……
- redis数据丢失及解决
- 浅谈Redis数据库的键值设计
- Sql递归查询
- MySQL中的表中增加删除字段
- Navicate 导入和导出sql文件
- win7 中使用PLSQL Developer的配置方法
- 数据库集群
- SQL Server 内存和换页(Paging)
- [MySQL]分组后查找每组的前N条记录语句
- Redis回顾与总结
- MySQL开启binlog以及查看binlog
- key/value存储系统-Memcached、Redis、Tair