数据库聚合函数应用(某厂dian面)

数据库聚合函数

AVG 求平均
SUM 求和
MIN 求最小
MAX 求最大
COUNT 计数

GROUP BY 分组函数

ORDER BY 排序函数


在这里插入图片描述

以上是数据表数据


以下是数据表SQL

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for hyjx
-- ----------------------------
DROP TABLE IF EXISTS `hyjx`;
CREATE TABLE `hyjx`  (
  `NAME` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '姓名',
  `CJ` int(25) NULL DEFAULT NULL COMMENT '成绩',
  `KM` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '科目'
) ENGINE = InnoDB CHARACTER SET = latin1 COLLATE = latin1_swedish_ci ROW_FORMAT = Compact;

-- ----------------------------
-- Records of hyjx
-- ----------------------------
INSERT INTO `hyjx` VALUES ('张三', 100, '数学');
INSERT INTO `hyjx` VALUES ('张三', 88, '语文');
INSERT INTO `hyjx` VALUES ('李四', 99, '数学');
INSERT INTO `hyjx` VALUES ('李四', 49, '语文');
INSERT INTO `hyjx` VALUES ('王五', 49, '数学');
INSERT INTO `hyjx` VALUES ('王五', 67, '语文');
INSERT INTO `hyjx` VALUES ('赵六', 88, '数学');
INSERT INTO `hyjx` VALUES ('赵六', 89, '语文');

SET FOREIGN_KEY_CHECKS = 1;

需求一:

在这里插入图片描述

实现对表中数据成绩的求和,要求得出上面结果。

SELECT NAME,SUM( CJ ) FROM hyjx GROUP BY NAME ORDER BY SUM( CJ ) DESC

需求二:

在这里插入图片描述
实现对表中数据行转列,要求得出上面结果。

SELECT NAME,
	SUM( CASE KM WHEN "语文" THEN CJ ELSE 0 END ) 语文,
	SUM( CASE KM WHEN "数学" THEN CJ ELSE 0 END ) 数学 
FROM hyjx GROUP BY NAME

更多精彩,敬请期待!
后续会更新数据表中列转行。。。

都看到最后了,记得点赞、关注哈!

猜你喜欢

转载自blog.csdn.net/frdevolcqzyxynjds/article/details/109727860