分数>=60分视为考试通过,有一次通过即为考核通过 身份证位数不为18位数的视为无效成绩,两个人OPENID重复的视为涉嫌抄袭双方都为无效成绩,查询考核通过的人数、最高分数,结果列输出考核通过人数、最高分
CREATE TABLE `sj` (
`tname` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`card_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`scores` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`open_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`inserttime` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of sj
-- ----------------------------
INSERT INTO `sj` VALUES ('林八', '388908199609234545', '22', 'oMKeGtxO', '2021-09-01 14:11:15.000');
INSERT INTO `sj` VALUES ('李四', '342908199209234509', '78', 'oMKeGtxQ', '2021-09-02');
INSERT INTO `sj` VALUES ('王五', '35690819960923434', '93', 'oMKeGtxA', '2021-09-03');
INSERT INTO `sj` VALUES ('周六', '372083199609234571', '43', 'oMKeGtxB', '2021-09-04');
INSERT INTO `sj` VALUES ('孙七', '328920908199609234', '78', 'oMKeGtxC', '2021-09-05');
INSERT INTO `sj` VALUES ('张三', '320908199609234571', '65', 'oMKeGtxD', '2021-09-06');
INSERT INTO `sj` VALUES ('赵九', '356908199609234532', '45', 'oMKeGtxE', '2021-09-07');
INSERT INTO `sj` VALUES ('周六', '372083199609234571', '87', 'oMKeGtxC', '2021-09-08');
INSERT INTO `sj` VALUES ('林八', '388908199609234545', '78', 'oMKeGtxO', '2021-09-09');
INSERT INTO `sj` VALUES ('吴十', '321308199609234543', '45', 'oMKeGtxQ', '2021-09-10');
INSERT INTO `sj` VALUES ('张三', '320908199609234571', '98', 'oMKeGtxD', '2021-09-11');
INSERT INTO `sj` VALUES ('肖十一', '365083199609234534', '87', 'oMKeGtxC', '2021-09-12');
INSERT INTO `sj` VALUES ('陈十二', NULL, '85', 'oMKeGtxF', '2021-09-13');
SET FOREIGN_KEY_CHECKS = 1;
该回答引用chatgpt:
按照你目前的数据查出来没有符合条件的
SELECT COUNT(*) AS pass_count, MAX(scores) AS max_score
FROM sj
WHERE scores >= 60
AND CHAR_LENGTH(card_id) = 18
AND card_id IS NOT NULL
AND open_id NOT IN (
SELECT open_id FROM sj
GROUP BY open_id
HAVING COUNT(*) > 1
)