成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官:GROUP BY和DISTINCT有什么區(qū)別?

數(shù)據(jù)庫 MySQL
GROUP BY 和 DISTINCT 都可以使用索引,此情況它們的性能是相同的;而當(dāng)去重的字段沒有索引時,DISTINCT 的性能就會高于 GROUP BY,因為在 MySQL 8.0 之前,GROUP BY 有一個隱藏的功能會進行默認的排序,這樣就會觸發(fā) filesort 從而導(dǎo)致查詢性能降低。

在 MySQL 中,GROUP BY 和 DISTINCT 都是用來處理查詢結(jié)果中的重復(fù)數(shù)據(jù),并且在官方的描述文檔中也可以看出:在大多數(shù)情況下 DISTINCT 是特殊的 GROUP BY,如下圖所示:

官方文檔地址:https://dev.mysql.com/doc/refman/8.0/en/distinct-optimization.html

但二者還是有一些細微的不同,接下來一起來看。

1.DISTINCT 介紹

  • 用途:DISTINCT 用于從查詢結(jié)果中去除重復(fù)的行,確保返回的結(jié)果集中每一行都是唯一的。
  • 語法:通常用于 SELECT 語句中,緊跟在 SELECT 關(guān)鍵字之后。例如以下  SQL:
SELECT DISTINCT column1, column2 FROM table_name;
  • 工作機制:DISTINCT 會對整個結(jié)果集進行去重,即只要結(jié)果集中的某一行與另一行完全相同,就會被去除。

2.GROUP BY 介紹

  • 用途:GROUP BY 主要用于對結(jié)果集按照一個或多個列進行分組,通常與聚合函數(shù)(如 COUNT, SUM, AVG, MAX, MIN 等)一起使用,以便對每個組進行統(tǒng)計。
  • 語法:GROUP BY 通常跟在 FROM 或 WHERE 子句之后,在 SELECT 語句的末尾部分。例如以下  SQL:
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;
  • 工作機制:GROUP BY 將數(shù)據(jù)按指定的列進行分組,每個組返回一行數(shù)據(jù)。

3.舉例說明

(1)使用 DISTINCT

假設(shè)有一個表 students,包含以下數(shù)據(jù):

id

name

age

1

Alice

20

2

Bob

22

3

Alice

20

使用 DISTINCT 去除重復(fù)行:

SELECT DISTINCT name, age FROM students;

結(jié)果:

name

age

Alice

20

Bob

22

(2)使用 GROUP BY

假設(shè)還是上面的表 students,我們想要統(tǒng)計每個學(xué)生的數(shù)量:

SELECT name, COUNT(*) AS count FROM students GROUP BY name;

結(jié)果:

name

count

Alice

2

Bob

1

4.主要區(qū)別

  • 功能不同:DISTINCT 用于去除重復(fù)行,而 GROUP BY 用于對結(jié)果集進行分組,通常與聚合函數(shù)一起使用。
  • 返回結(jié)果不同:DISTINCT 返回去重后的結(jié)果集,查詢結(jié)果集中只能包含去重的列信息,有其他列信息會報錯;GROUP BY 返回按指定列分組后的結(jié)果集,可以展示多列信息,并可以包含聚合函數(shù)的計算結(jié)果。
  • 應(yīng)用場景不同:DISTINCT 更適合單純的去重需求,GROUP BY 更適合分組統(tǒng)計需求。
  • 性能略有不同:如果去重的字段有索引,那么 GROUP BY 和 DISTINCT 都可以使用索引,此情況它們的性能是相同的;而當(dāng)去重的字段沒有索引時,DISTINCT 的性能就會高于 GROUP BY,因為在 MySQL 8.0 之前,GROUP BY 有一個隱藏的功能會進行默認的排序,這樣就會觸發(fā) filesort 從而導(dǎo)致查詢性能降低。
責(zé)任編輯:姜華 來源: 磊哥和Java
相關(guān)推薦

2023-02-17 08:10:24

2024-04-03 15:33:04

JWTSession傳輸信息

2021-12-10 12:01:37

finalfinallyfinalize

2021-11-30 07:44:50

FinalFinallyFinalize

2021-12-13 06:56:45

Comparable元素排序

2024-03-20 15:12:59

KafkaES中間件

2021-12-23 07:11:31

開發(fā)

2023-02-09 07:01:35

轉(zhuǎn)發(fā)重定向Java

2023-07-11 08:40:02

IO模型后臺

2023-12-13 13:31:00

useEffect對象瀏覽器

2023-02-20 07:19:14

2022-05-16 11:04:43

RocketMQPUSH 模式PULL 模式

2024-03-26 16:24:46

分布式事務(wù)2PC3PC

2025-03-12 08:45:15

函數(shù)聲明函數(shù)表達式IIFE

2021-12-27 06:57:40

This SuperJava

2021-05-10 08:01:12

BeanFactoryFactoryBean容器

2023-12-05 09:33:08

分布式事務(wù)

2022-08-22 07:06:32

MyBatisSQL占位符

2025-04-09 00:00:55

2021-07-08 06:51:29

React函數(shù)組件
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 中文字幕一区在线观看视频 | 伊人超碰| 国产美女精品视频 | 欧美二区在线 | 性色av香蕉一区二区 | 色综合区 | 日本欧美视频 | 国产成人精品久久二区二区91 | 亚洲欧美日韩国产综合 | 黄色亚洲网站 | 亚洲国产一区二区三区 | 久久一区| 亚洲国产成人av | 日韩亚洲视频 | 欧美日韩精品一区 | 亚洲视频免费在线观看 | 欧美极品视频在线观看 | 欧美精品一区二区三区在线播放 | 久久在线视频 | 高清久久久 | 国产精品免费看 | 国产高清视频在线观看 | 国产传媒视频在线观看 | 国产精品视频入口 | 久久精品国产久精国产 | 在线观看av网站 | 精品国产免费一区二区三区五区 | 免费一级做a爰片久久毛片潮喷 | 麻豆一区二区三区精品视频 | 国产精品免费看 | 久草在线 | 国产综合精品 | 久久国产精品久久久久久 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 亚洲精久久久 | 欧美一级久久 | 亚洲欧美日韩精品久久亚洲区 | 91精品入口蜜桃 | 国产四虎 | 久久婷婷国产麻豆91 | 亚洲国产精品99久久久久久久久 |