第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

DISTINCT 去重

前面小節(jié)介紹了如何使用 GROUP BY 對查詢數(shù)據(jù)分組,并且 GROUP BY 能起到有效去重作用,本小節(jié)介紹如何使用 DISTINCT 去重。

1. 單字段去重

以表 student_course 和 表 student 鏈接為例:

SELECT * FROM student_course a INNER JOIN student b ON a.student_id=b.id;

查詢結(jié)果如下圖:

圖片描述

上圖查詢結(jié)果中,若只需要學(xué)生信息,則需要對結(jié)果進(jìn)行去重:

SELECT DISTINCT student_id 
FROM 
student_course a 
INNER JOIN 
student b 
ON a.student_id=b.id;

執(zhí)行結(jié)果如下圖 :

圖片描述

2. 多字段去重

以表 student_course、course、course、teacher 鏈接為例:

SELECT * 
FROM 
student_course a 
INNER JOIN 
course b 
ON a.course_id=b.id 
INNER JOIN teacher c 
ON b.teacher_id=c.id;

查詢結(jié)果如下圖:

圖片描述

如上圖,若需要得到所有教師的所有課程信息,則需要多個(gè)字段對結(jié)果去重:

SELECT 
DISTINCT  a.course_id,b.course_name,b.teacher_id,c.name
FROM 
student_course a 
INNER JOIN 
course b 
ON a.course_id=b.id 
INNER JOIN teacher c 
ON b.teacher_id=c.id;

去重后查詢結(jié)果如下圖 :

圖片描述

Tips:多字段去重意思就是只有所有指定的列信息都相同,才會被認(rèn)定為重復(fù)的信息。

3. 小結(jié)

本小節(jié)介紹了如何使用 DISTINCT 去重,之前介紹的 GROUP BY 也能起到去重的作用,使用的頻率相對較高,它的目的是用來分組進(jìn)行聚合統(tǒng)計(jì)的,例如需要對分組的數(shù)據(jù)統(tǒng)計(jì):

 SELECT teacher_id,count(*) FROM course GROUP BY teacher_id;

執(zhí)行結(jié)果如下圖:

圖片描述

Tips:如上圖所示,count(*) 表示使用聚合函數(shù)對分組數(shù)據(jù)統(tǒng)計(jì),這里可以理解為分組重復(fù)的總數(shù),例如 teacher_id=1 的總共有 5 條。