SQL中的DISTINCT、SQL DISTINCT详解、DISTINCT的用法、DISTINCT注意事项
DISTINCT简介:DISTINCT 是 SQL 中用来返回唯一不重复效果集的关键字。它通常用于 SELECT 语句中,可以指定一个或多个列举行去重,并返回唯一的效果。当你在使用 SELECT 查询数据时,可能会得到包含重复行的效果集。为了去除这些重复行,你可以使用 DISTINCT 关键字来获取唯一的记录。
表中插入的原始数据:https://img-blog.csdnimg.cn/direct/8ccf75455e684e2aabfbbac49b865a6f.png
1、单列去重:单列去重:使用 DISTINCT 去重查询效果中的单个列,返回唯一的值。
SELECT DISTINCT age FROM students https://img-blog.csdnimg.cn/direct/8ec0e387c06d442b84589ad99b182449.png
2、多列去重:使用 DISTINCT 去重查询效果中的多个列,返回满意多列组合唯一的效果。
SELECT DISTINCT NAME,age,score FROM students https://img-blog.csdnimg.cn/direct/fa02940e19244b8d9b17d3ea227e3e72.png
3、联合其他关键字:DISTINCT 可以与其他 SQL 关键字联合使用,如 ORDER BY、WHERE 和 GROUP BY 等
SELECT DISTINCT NAME,age,score FROM students ORDER BY score DESC
SELECT DISTINCT NAME ,age,score FROM students GROUP BY NAME https://img-blog.csdnimg.cn/direct/7e72a96271094def85f3eb6077fe807a.pnghttps://img-blog.csdnimg.cn/direct/72cf3adb2a78400aac1b72921bf4b358.png
4、对表达式举行去重:DISTINCT 还可以用于对表达式举行去重,而不仅仅是列名。这允许你根据某些计算得到的效果举行去重。
SELECT DISTINCT ( `name` + age) result FROM students 5、COUNT()统计
SELECT COUNT(DISTINCT NAME) num FROM students
注意事项:
1、distinct 必须放在字段的开头,即放在第一个参数的位置。
2、只能在select语句中使用,不能在insert、delete、update中使用。
3、distinct表示对背面的所有参数的拼接 取 不重复的记录。
4、distinct 忽略 NULL 值:distinct 关键字默认会忽略 NULL 值,即将 NULL 视为相同的值。如果你盼望包罗 NULL 值在去重效果中,可以使用 IS NULL 或 IS NOT NULL 举行过滤。
5、DISTINCT 基于所有选择的列:DISTINCT 关键字基于选择的所有列来举行去重。如果你只想根据部门列举行去重,可以使用子查询或者窗口函数等技能来实现。
6、DISTINCT 的性能消耗:DISTINCT 操纵可能会对查询的性能产生一定的影响,特殊是在处置惩罚大量数据时。因为它必要对效果集举行排序和比较以去除重复行。如果性能是一个关键问题,可以考虑其他优化方法,例如使用索引或者公道计划查询。
7、效果集次序不包管:使用 DISTINCT 关键字后,效果集的次序可能会发生变革,因为数据库系统通常会对效果举行重新排列以去除重复行。如果必要特定的效果排序,可以使用 ORDER BY 子句举行排序。
完整版代码
CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, NAME VARCHAR(50), age INT, score DECIMAL(5, 2));INSERT INTO students (NAME, age, score) VALUES('Alice', 20, 85.5),('Bob', 22, 76.3),('Charlie', 21, 92.0),('Alice', 20, 85.5),('David', 23, 68.9);# 原始数据SELECT * FROM students# 单列去重:使用 DISTINCT 去重查询效果中的单个列,返回唯一的值。SELECT DISTINCT age FROM students# 多列去重:使用 DISTINCT 去重查询效果中的多个列,返回满意多列组合唯一的效果。SELECT DISTINCT NAME,age,score FROM students# 联合其他关键字:DISTINCT 可以与其他 SQL 关键字联合使用,如 ORDER BY、WHERE 和 GROUP BY 等SELECT DISTINCT NAME,age,score FROM students ORDER BY score DESC
SELECT DISTINCT NAME ,age,score FROM students GROUP BY NAME# 对表达式举行去重:DISTINCT 还可以用于对表达式举行去重,而不仅仅是列名。这允许你根据某些计算得到的效果举行去重。SELECT DISTINCT ( `name` + age) result FROM students# COUNT()统计SELECT COUNT(DISTINCT NAME) num FROM students
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]