最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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 查詢語(yǔ)句

復(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)

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

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

mysql group by having 用法

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

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

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

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

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

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

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

用having比 JOIN ON 相對(duì)好理解一些,簡(jiǎn)單一些。

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

GROUP BY:

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

比如:

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

select name,sum(point) from table_name

這樣sql語(yǔ)句會(huì)報(bào)錯(cuò),必須寫成:

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

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

HAVING

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

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

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

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

相關(guān)文章

  • 使用logrotete定時(shí)切割mysql的慢日志操作

    使用logrotete定時(shí)切割mysql的慢日志操作

    本文介紹了如何在Linux系統(tǒng)中使用logrotate工具對(duì)MySQL慢查詢?nèi)罩具M(jìn)行自動(dòng)輪轉(zhuǎn)和管理配置,包括創(chuàng)建配置文件、設(shè)置輪轉(zhuǎn)頻率、文件命名、權(quán)限、執(zhí)行腳本以及測(cè)試配置的方法,感興趣的朋友一起看看吧
    2025-03-03
  • MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

    MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

    這篇文章主要介紹了MySQL中Binary Log二進(jìn)制日志文件的基本操作小結(jié),包括利用二進(jìn)制日志恢復(fù)數(shù)據(jù)的方法,需要的朋友可以參考下
    2015-12-12
  • Mysql性能調(diào)優(yōu)之max_allowed_packet使用及說(shuō)明

    Mysql性能調(diào)優(yōu)之max_allowed_packet使用及說(shuō)明

    這篇文章主要介紹了Mysql性能調(diào)優(yōu)之max_allowed_packet使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • zabbix監(jiān)控mysql的實(shí)例方法

    zabbix監(jiān)控mysql的實(shí)例方法

    在創(chuàng)建監(jiān)控項(xiàng)之前要盡量考慮清楚要監(jiān)控什么,怎么監(jiān)控,監(jiān)控?cái)?shù)據(jù)如何存儲(chǔ),監(jiān)控?cái)?shù)據(jù)如何展現(xiàn),如何處理報(bào)警等。本文主要介紹了zabbix監(jiān)控mysql的實(shí)現(xiàn)方法,感興趣的可以了解一下
    2021-06-06
  • mysql索引對(duì)排序的影響實(shí)例分析

    mysql索引對(duì)排序的影響實(shí)例分析

    這篇文章主要介紹了mysql索引對(duì)排序的影響,結(jié)合實(shí)例形式分析了mysql使用索引提高排序速度的相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • MySQL學(xué)習(xí)筆記小結(jié)

    MySQL學(xué)習(xí)筆記小結(jié)

    這篇文章主要介紹了MySQL學(xué)習(xí)筆記小結(jié),整體介紹了mysql的很多細(xì)節(jié)我呢體,學(xué)習(xí)優(yōu)化mysql的朋友可以參考下,需要的朋友可以參考下
    2016-05-05
  • Idea 如何導(dǎo)入Mysql8.0驅(qū)動(dòng)jar包

    Idea 如何導(dǎo)入Mysql8.0驅(qū)動(dòng)jar包

    IDEA中的庫(kù)(Libraries)就是用來(lái)存放外部jar包,我們的項(xiàng)目或模塊需要某些jar包時(shí),可以從這里把包導(dǎo)入到模塊依賴(Dependencies)中,本文給大家介紹Idea 如何導(dǎo)入Mysql8.0驅(qū)動(dòng)jar包,感興趣的朋友一起看看吧
    2023-12-12
  • 在阿里云的CentOS環(huán)境中安裝配置MySQL的教程

    在阿里云的CentOS環(huán)境中安裝配置MySQL的教程

    這篇文章主要介紹了在阿里云的CentOS環(huán)境中安裝配置MySQL的教程,注意一下文章開頭所提到的系統(tǒng)自帶MariaDB的問(wèn)題,需要的朋友可以參考下
    2015-12-12
  • MySQL的邏輯架構(gòu)及工作全流程

    MySQL的邏輯架構(gòu)及工作全流程

    這篇文章主要介紹了MySQL的邏輯架構(gòu)及工作全流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 遠(yuǎn)程連接mysql報(bào)錯(cuò)“Host?xxx?is?not?allowed?to?connect?to?this?MySQL?server“簡(jiǎn)單解決辦法

    遠(yuǎn)程連接mysql報(bào)錯(cuò)“Host?xxx?is?not?allowed?to?connect?to?th

    這篇文章主要給大家介紹了關(guān)于遠(yuǎn)程連接mysql報(bào)錯(cuò)“Host?xxx?is?not?allowed?to?connect?to?this?MySQL?server“的解決辦法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07

最新評(píng)論

新乡市| 通州区| 曲麻莱县| 扎兰屯市| 梧州市| 上高县| 普格县| 巧家县| 青田县| 邵武市| 嘉祥县| 当涂县| 芜湖县| 张北县| 山阳县| 黑水县| 鹿泉市| 三河市| 鹿泉市| 紫阳县| 疏勒县| 沐川县| 偃师市| 阿荣旗| 九江县| 定西市| 调兵山市| 龙山县| 大新县| 图们市| 玉树县| 博乐市| 衢州市| 井冈山市| 丹东市| 锡林郭勒盟| 宁南县| 佛学| 巴里| 施甸县| 区。|