MySQL8.0之后开始支持开窗函数,对于低版本的MySQL通过复杂一些的方式也能得到同样的效果:
表结构:
CREATE TABLE `class` (
`student_id` char(4) NOT NULL,
`class_id` tinyint NOT NULL,
`score` double(6,0) NOT NULL,
PRIMARY KEY (`student_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
测试数据:
INSERT INTO `class` VALUES ('0001', 1, 86);
INSERT INTO `class` VALUES ('0002', 1, 95);
INSERT INTO `class` VALUES ('0003', 2, 89);
INSERT INTO `class` VALUES ('0004', 1, 83);
INSERT INTO `class` VALUES ('0005', 2, 86);
INSERT INTO `class` VALUES ('0006', 3, 92);
INSERT INTO `class` VALUES ('0007', 3, 86);
INSERT INTO `class` VALUES ('0008', 1, 88);
INSERT INTO `class` VALUES (&#