Database aggregation function application (a certain factory)

Database aggregation functions

AVG Average
SUM Sum
MIN Seek the smallest
MAX Seek the biggest
COUNT count

GROUP BY Grouping function

ORDER BY Sort function


Insert picture description here

The above is the data sheet data


The following is the data table 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;

Demand one:

Insert picture description here

To achieve the sum of the data scores in the table, the above results are required.

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

Demand two:

Insert picture description here
To achieve the conversion of data rows in the table, the above results are required.

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

More exciting, stay tuned!
The column and row in the data table will be updated later. . .

I have seen the last, remember to like and follow!

Guess you like

Origin blog.csdn.net/frdevolcqzyxynjds/article/details/109727860