データベース集約機能アプリケーション(ある工場)

データベース集約機能

AVG 平均

MIN 最小のものを探す
MAX 最大のものを探す
カウント カウント

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;

1つを要求する:

ここに写真の説明を挿入

表のデータスコアの合計を達成するには、上記の結果が必要です。

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

2つ要求:

ここに写真の説明を挿入
テーブル内のデータ行の変換を実現するには、上記の結果が必要です。

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