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

SQL匯總統(tǒng)計(jì)與GROUP BY過(guò)濾查詢(xún)實(shí)現(xiàn)

 更新時(shí)間:2023年01月05日 09:20:09   作者:黑碼哥  
這篇文章主要介紹了SQL匯總統(tǒng)計(jì)與GROUP BY過(guò)濾查詢(xún)實(shí)現(xiàn),GROUP BY 實(shí)質(zhì)是先排序后分組,遵照索引建的最佳左前綴。當(dāng)無(wú)法使用索引時(shí),增大max_length_for_sort_data和sort_buffer參數(shù)的值

1、匯總統(tǒng)計(jì)

介紹幾個(gè)聚集函數(shù)

有多少名學(xué)生

SELECT COUNT(*) FROM student;

SELECT COUNT(1) FROM student;

SELECT COUNT(score) FROM student;

所有學(xué)生的成績(jī)總和

SELECT SUM(score) FROM student;

所有學(xué)生成績(jī)的最高分

SELECT MAX(score) FROM student;

所有學(xué)生成績(jī)最低分

SELECT MIN(score) FROM student;

所有學(xué)生成績(jī)平均分

SELECT AVG(score) FROM student;

2、GROUT BY

如何獲取每個(gè)班級(jí)的數(shù)學(xué)成績(jī)平均分(因?yàn)閷W(xué)生太多,這里先不計(jì)算

成績(jī)?cè)?0分以下的學(xué)生),以便比較不同班級(jí)的成績(jī)?

SELECT class_id, AVG(score)
FROM student 
WHERE score > 80
GROUP BY class_id

匯總原理如下:

如何統(tǒng)計(jì)不同的交易所的總的買(mǎi)入金額?

SELECT LEFT(stock_code,2), SUM(price * volume)
FROM t_stock_trans_dtl
WHERE opt_typ = '買(mǎi)入'
GROUP BY LEFT(stock_code,2)

如何統(tǒng)計(jì)不同的交易所的不同交易類(lèi)型的總的交易金額?

SELECT LEFT(stock_code,2), opt_typ, SUM(price * volume)
FROM t_stock_trans_dtl
GROUP BY LEFT(stock_code,2), opt_typ

SELECT里除了使用聚集函數(shù)返回的字段外,其他所有的字段都必須原樣出現(xiàn)在GROUP BY的 后面;

GROUP BY會(huì)將NULL值的行,分到同一組計(jì)算統(tǒng)計(jì)值:

SELECT teacher_id, COUNT(*)
FROM student
GROUP BY teacher_id

3、如何對(duì)分組統(tǒng)計(jì)的結(jié)果進(jìn)行過(guò)濾

GROUP BY + HAVING

如何獲取教授15名以上學(xué)名的老師?

使用關(guān)鍵字:GROUP BY + HAVING

SELECT teacher_id, COUNT(*)
FROM student
GROUP BY teacher_id
HAVING COUNT(*) > 15

如何獲取數(shù)學(xué)成績(jī)平均分在70分及以上的班級(jí)?

SELECT class_id, AVG(score)
FROM student
GROUP BY class_id
HAVING AVG(score) > 70;

如何獲取每個(gè)班級(jí)的成績(jī)平均分(不計(jì)算成績(jī)?cè)?0分以下的學(xué)

生且過(guò)濾掉平均分在90分以下的班級(jí)),以便比較不同班級(jí)的成績(jī)?

SELECT class_id, AVG(score)
FROM student
WHERE score > 80
GROUP BY class_id
HAVING AVG(score) > 90;

4、如何對(duì)分組統(tǒng)計(jì)的結(jié)果進(jìn)行排序

GROUP BY + ORDER BY

如何獲取每個(gè)班級(jí)的數(shù)學(xué)成績(jī)平均分(不計(jì)算成績(jī)?cè)?0分以下的學(xué)

生),然后以平均分從高到低排序?

SELECT class_id, AVG(score)
FROM student
WHERE score > 80
GROUP BY class_id
ORDER BY AVG(score) DESC

5、介紹SELECT語(yǔ)句中各個(gè)子句的書(shū)寫(xiě)順序

如何獲取每個(gè)班級(jí)的數(shù)學(xué)成績(jī)平均分(不計(jì)算成績(jī)?cè)?0分以下的學(xué)

生且過(guò)濾掉平均分在90分以下的班級(jí)),然后以平均分從高到低排序?

SELECT class_id, AVG(score)
FROM student
WHERE score > 80
GROUP BY class_id
HAVING AVG(score) > 90
ORDER BY AVG(score) DESC

6、上方用到的表

學(xué)生表

交易表

到此這篇關(guān)于SQL匯總統(tǒng)計(jì)與GROUP BY過(guò)濾查詢(xún)實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SQL GROUP BY內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql5.7.17安裝使用圖文教程

    mysql5.7.17安裝使用圖文教程

    這篇文章主要為大家詳細(xì)介紹了MySql安裝與使用圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • MySQL高并發(fā)生成唯一訂單號(hào)的方法實(shí)現(xiàn)

    MySQL高并發(fā)生成唯一訂單號(hào)的方法實(shí)現(xiàn)

    這篇文章主要介紹了MySQL高并發(fā)生成唯一訂單號(hào)的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • mysql中order by與group by的區(qū)別

    mysql中order by與group by的區(qū)別

    以下是對(duì)mysql中order by與group by的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下
    2013-07-07
  • Mysql效率優(yōu)化定位較低sql的兩種方式

    Mysql效率優(yōu)化定位較低sql的兩種方式

    通過(guò)慢查詢(xún)?nèi)罩径ㄎ荒切﹫?zhí)行效率較低的 SQL 語(yǔ)句,用 --log-slow-queries[=file_name] 選項(xiàng)啟動(dòng)時(shí), mysqld 會(huì) 寫(xiě)一個(gè)包含所有執(zhí)行時(shí)間超過(guò) long_query_time 秒的 SQL 語(yǔ)句的日志文件,通過(guò)查看這個(gè)日志文件定位效率較低的 SQL
    2015-10-10
  • mysql數(shù)據(jù)庫(kù)decimal類(lèi)型與decimal長(zhǎng)度用法詳解

    mysql數(shù)據(jù)庫(kù)decimal類(lèi)型與decimal長(zhǎng)度用法詳解

    在MySQL中decimal是一種用于存儲(chǔ)精確數(shù)字的數(shù)據(jù)類(lèi)型,下面這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫(kù)decimal類(lèi)型與decimal長(zhǎng)度用法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • MYSQL索引建立需要注意以下幾點(diǎn)細(xì)節(jié)

    MYSQL索引建立需要注意以下幾點(diǎn)細(xì)節(jié)

    建立MYSQL索引時(shí)需要注意以下幾點(diǎn):建立索引的時(shí)機(jī)/對(duì)于like/對(duì)于有多個(gè)條件的/開(kāi)啟索引緩存/建立索引是有代價(jià)的等等,感興趣的你可以參考下本文,或許可以幫助到你
    2013-03-03
  • 詳解在MySQL中創(chuàng)建表的教程

    詳解在MySQL中創(chuàng)建表的教程

    這篇文章主要介紹了詳解在MySQL中創(chuàng)建表的教程,是MySQL入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • mysql多條數(shù)據(jù)合并成一條的3種常見(jiàn)方法

    mysql多條數(shù)據(jù)合并成一條的3種常見(jiàn)方法

    在實(shí)際的應(yīng)用開(kāi)發(fā)中,有時(shí)我們需要將多條數(shù)據(jù)合并成一條數(shù)據(jù),以便更好地進(jìn)行數(shù)據(jù)分析和處理,本文就來(lái)介紹一下mysql多條數(shù)據(jù)合并成一條的方法,具有一定的參考價(jià)值
    2023-10-10
  • MySQL 普通索引和唯一索引的區(qū)別詳解

    MySQL 普通索引和唯一索引的區(qū)別詳解

    這篇文章主要介紹了MySQL 普通索引和唯一索引的區(qū)別詳解,幫助大家更好的理解和學(xué)習(xí)使用MySQL,感興趣的朋友可以了解下
    2021-03-03
  • MySQL的存儲(chǔ)引擎InnoDB和MyISAM

    MySQL的存儲(chǔ)引擎InnoDB和MyISAM

    這篇文章主要介紹了MySQL的存儲(chǔ)引擎InnoDB和MyISAM,MyISAM?用的是非聚集索引方式,即數(shù)據(jù)和索引落在不同的兩個(gè)文件上,下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04

最新評(píng)論