欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql中g(shù)roup by與having合用注意事項分享

 更新時間:2013年10月09日 22:53:20   作者:  
在mysql中g(shù)roup by分組查詢我們經(jīng)常會用到,并且還同時會與having合用,下面我介紹group by用法與having合用注意事項,希望此教程對各位朋友有所幫助

group by函數(shù)應(yīng)該的使用應(yīng)該是SELECT 列表中指定的每一列也必須出現(xiàn)在 GROUP BY 子句中,除非這列是用于聚合函數(shù),但是今天幫同事調(diào)試一個mysql中的group by函數(shù),讓我大跌眼鏡,當時感覺不可思議,然后回來做了個簡化版試驗,試驗過程如下:

mysql表結(jié)構(gòu)

復(fù)制代碼 代碼如下:

mysql> desc t;
+——-+————–+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——-+————–+——+—–+———+——-+
| id | int(11) | YES | | 0 | |
| name | varchar(100) | YES | | NULL | |
| aa | varchar(45) | YES | | NULL | |
+——-+————–+——+—–+———+——-+
3 rows in set (0.01 sec)

插入數(shù)據(jù)

復(fù)制代碼 代碼如下:

mysql> select * from t;
+——+——+——-+
| id | name | aa |
+——+——+——-+
| 1 | aaaa | bbbb |
| 1 | 1111 | 2222 |
| 1 | 2222 | 33333 |
| 1 | 2222 | 44444 |
| 2 | 2222 | 44444 |
| 2 | 2222 | 1111 |
| 3 | 2222 | 1111 |
| 1 | 2222 | 44444 |
| 1 | 2222 | 44444 |
| 1 | 2222 | 44444 |
| 3 | 2222 | aaaa |
+——+——+——-+
11 rows in set (0.00 sec)

group by 查詢語句

復(fù)制代碼 代碼如下:

mysql> select id,count(1) ,aa from t group by id;
+——+———-+——-+
| id | count(1) | aa |
+——+———-+——-+
| 1 | 7 | bbbb |
| 2 | 2 | 44444 |
| 3 | 2 | 1111 |
+——+———-+——-+
3 rows in set (0.00 sec)

在本試驗中,一共select id,count(1),aa,結(jié)果group by按照規(guī)則,除了聚合函數(shù)(count(1))外,其他兩列(id,aa)都應(yīng)該包含在group by中,可是試驗只是包含了id。

對試驗結(jié)果的說明
1、包含在group by后面的id列的count(1)統(tǒng)計數(shù)據(jù)為正確的
2、按照正常思維,aa的數(shù)據(jù)不能展示出來,可是mysql選擇了展示表中aa數(shù)據(jù)的第一條
3、上述2也是個人猜測,暫時未查到官方相關(guān)說明

mysql group by having 用法

group by就是按照不同的字段進行分組,數(shù)值可以實現(xiàn)匯總

例如數(shù)據(jù)庫中有A表,包括學(xué)生,學(xué)科,成績?nèi)齻€字段
數(shù)據(jù)庫結(jié)構(gòu)為
學(xué)生 學(xué)科 成績
張三 語文 80
張三 數(shù)學(xué) 100
李四 語文 70
李四 數(shù)學(xué) 80
李四 英語 80

那么
select 學(xué)生,sum(成績) from A group by 學(xué)生;
得到如下結(jié)果

學(xué)生 成績
張三 180
李四 230

==============================================================

如果考慮having
語句寫成:
select 學(xué)生,sum(成績) from A group by 學(xué)生 having 成績=80;
得到結(jié)果就是這樣的

學(xué)生 成績
張三 80
李四 160

用having比 JOIN ON 相對好理解一些,簡單一些。

mysql中g(shù)roup by having 用法需要注意的事項:

GROUP BY:

group by 有一個原則,就是 select 后面的所有列中,沒有使用聚合函數(shù)的列,必須出現(xiàn)在 group by后面。

比如:

復(fù)制代碼 代碼如下:

select name,sum(point) from table_name

這樣sql語句會報錯,必須寫成:

復(fù)制代碼 代碼如下:

select name,sum(point) from table_name GROUP BY name

HAVING

把 HAVING 加入 SQL 的原因是,WHERE 無法應(yīng)用于合計函數(shù),而如果沒有 HAVING,就無法測試結(jié)果條件。

復(fù)制代碼 代碼如下:

select name,sum(point)
from table_name GROUP BY name
HAVING sum(point)>1000

having通常和group by聯(lián)合使用.

相關(guān)文章

  • MySQL中的常用工具實例匯總(推薦)

    MySQL中的常用工具實例匯總(推薦)

    MySQL數(shù)據(jù)庫以體積小、速度快、總體擁有成本低等優(yōu)點,深受廣大中小企業(yè)的喜愛,下面這篇文章主要給大家介紹了關(guān)于MySQL中常用工具的相關(guān)資料,需要的朋友們可以參考學(xué)習(xí),下面來一起看看吧。
    2017-09-09
  • MySQL不使用order by實現(xiàn)排名的三種思路總結(jié)

    MySQL不使用order by實現(xiàn)排名的三種思路總結(jié)

    ORDER BY語句用于根據(jù)指定的列對結(jié)果集進行排序,在日常開發(fā)中也經(jīng)常會用到,但下面這篇文章主要給大家介紹了關(guān)于MySQL不使用order by實現(xiàn)排名的三種思路,需要的朋友可以參考下
    2021-06-06
  • 安裝和使用percona-toolkit來輔助操作MySQL的基本教程

    安裝和使用percona-toolkit來輔助操作MySQL的基本教程

    這篇文章主要介紹了安裝和使用percona-toolkit來輔助操作MySQL的基本教程,這里舉了五個最常見的命令用法,需要的朋友可以參考下
    2015-11-11
  • MySQL學(xué)習(xí)第二天 安裝和配置mysql winx64

    MySQL學(xué)習(xí)第二天 安裝和配置mysql winx64

    MySQL學(xué)習(xí)第二天,主要為大家詳細介紹了在Windows 64位操作系統(tǒng)下安裝和配置MySQL的具體步驟,整理一份mysql winx64安裝配置方法教程,感興趣的小伙伴們可以參考一下
    2016-05-05
  • MySQL窗口函數(shù)實現(xiàn)榜單排名

    MySQL窗口函數(shù)實現(xiàn)榜單排名

    相信大家在日常的開發(fā)中經(jīng)常會碰到榜單類的活動需求,本文主要介紹了MySQL窗口函數(shù)實現(xiàn)榜單排名,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 關(guān)于mysql中string和number的轉(zhuǎn)換問題

    關(guān)于mysql中string和number的轉(zhuǎn)換問題

    這篇文章主要介紹了關(guān)于mysql中string和number的轉(zhuǎn)換問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 關(guān)于MySQL索引的幾點值得注意的事項

    關(guān)于MySQL索引的幾點值得注意的事項

    索引對查詢的速度有著至關(guān)重要的影響,MySQL索引的建立對于MySQL的高效運行是很重要的
    2014-07-07
  • mysql 5.7.5 m15 winx64.zip安裝教程

    mysql 5.7.5 m15 winx64.zip安裝教程

    這篇文章主要為大家詳細介紹了mysql 5.7.5 m15 winx64.zip安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • MYSQL 批量替換之replace語法的使用詳解

    MYSQL 批量替換之replace語法的使用詳解

    本篇文章是對MYSQL中replace語法的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-07-07
  • MySQL創(chuàng)建用戶與授權(quán)方法

    MySQL創(chuàng)建用戶與授權(quán)方法

    MySQL中創(chuàng)建用戶與授權(quán)的實現(xiàn)方法,對于剛開始接觸mysql的朋友可以參考下
    2012-11-11

最新評論