distinct
作用
去重,在某张表中可能会有很多重复得值,当我们需要获取到不同得值得时候,需要进行去重操作
如何使用
只能放在所有查询字段得最前面,不能放在查询字段得中间或者后面,如果放在其他位置,会发生错误
正确的用法
在其他位置时,会发生错误
示例
创建表
CREATE TABLE score (
`name` varchar(10) NOT NULL COMMENT '学生姓名',
`number` int NOT NULL COMMENT '学生id',
`subid` int NOT NULL COMMENT '学科id',
`grade` int NOT NULL COMMENT '分数'
);
插入数据
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('小明', 1, 1001, 90);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('小明', 1, 1002, 75);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('小莉', 2, 1001, 90);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('小莉', 2, 1002, 90);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('王明', 3, 1001, 50);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('王明', 3, 1002, 90);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('王强', 4, 1001, 100);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('小A', 5, 1001, 100);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('小A', 5, 1002, 50);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('测试1', 6, 1002, 2000);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('测试2', 6, 1002, 233);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('测试3', 6, 1002, 23);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('abc', 6, 1002, 2000);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('b1c', 6, 1002, 233);
INSERT INTO `score` (`name`, `number`, `subid`, `grade`) VALUES ('c1', 6, 1002, 23);
表结构
查询成绩表
SELECT * FROM score;
根据姓名去重
SELECT DISTINCT name FROM score;
我们可以统计有多少人参与了考试,可以借助于count关键字来返回结果得行数
SELECT COUNT(DISTINCT name) as '人数' FROM score;
题主学习记录,大家多多包涵。