說(shuō)明:如果您有任何疑問(wèn)或想咨詢(xún)其他業(yè)務(wù)請(qǐng)撥打電話(huà) 400 685 0732
全網(wǎng)監(jiān)測(cè)海量數(shù)據(jù)按需發(fā)布監(jiān)測(cè)預(yù)警
實(shí)時(shí)把握輿情動(dòng)態(tài)精準(zhǔn)追溯信息源頭
聚合函數(shù)是sql當(dāng)中一個(gè)最基本的函數(shù),sql距,那么就一定要接觸到聚合函數(shù)的相關(guān)內(nèi)容,那么聚合函數(shù)究竟是如何使用的呢?今天我們就一起來(lái)看一看sql語(yǔ)句當(dāng)中的聚合函數(shù)使用方法吧。
聚合函數(shù)——SQL語(yǔ)句中聚合函數(shù)的使用
寫(xiě)上一個(gè)創(chuàng)建表的SQL語(yǔ)句.當(dāng)然我下面的寫(xiě)法只支持SQLSERVER2008數(shù)據(jù)庫(kù)以上的寫(xiě)法.
CREATETABLE學(xué)生表
學(xué)生IDINTIDENTITY(1,1)NOTNULL,
學(xué)號(hào)INTNULL,
期中分?jǐn)?shù)INTNULL,
期末分?jǐn)?shù)INTNULL
INSERTINTO學(xué)生表(學(xué)號(hào),期中分?jǐn)?shù),期末分?jǐn)?shù))
VALUES,85,80),
(2,NULL,75),
(3,NULL,85),
(4,NULL),,80);
SELECT*FROM學(xué)生表;
一條查詢(xún)語(yǔ)句,我們看到了剛才插入的全部結(jié)果.
我們來(lái)顯示學(xué)生成績(jī)中,期中考試分?jǐn)?shù)最低的和期末考試分?jǐn)?shù)最好的.
SELECTMIN(期中分?jǐn)?shù))AS期中最低分?jǐn)?shù),MAX(期末分?jǐn)?shù))AS期末最高分?jǐn)?shù)FROM學(xué)生表;
我們來(lái)求一下期中考試分?jǐn)?shù)的平均分?jǐn)?shù).
我們數(shù)據(jù)庫(kù)里面一共有5條數(shù)據(jù).
85,NULL,NULL,80,85
我們的結(jié)果是83分.
我們的聚合函數(shù)如果遇到NULL值的話(huà),就會(huì)跳過(guò)去,不計(jì)算.
所以我們的結(jié)果是(85+80+85)/3=83!
查詢(xún)學(xué)生表中有效的期末分?jǐn)?shù),得出的結(jié)果是3條.
SELECTCOUNT(期中分?jǐn)?shù))FROM學(xué)生表;
所以,大家一定要記得.聚合函數(shù)遇到空值會(huì)跳過(guò)去.
ORACLE優(yōu)化SQL語(yǔ)句
一、執(zhí)行順序及優(yōu)化細(xì)則
1.表名順序優(yōu)化(1)基礎(chǔ)表放下面,當(dāng)兩表進(jìn)行關(guān)聯(lián)時(shí)數(shù)據(jù)量少的表的表名放右邊表或視圖:
(2)當(dāng)出現(xiàn)多個(gè)表時(shí),關(guān)聯(lián)表被稱(chēng)之為交叉表,交叉表作為基礎(chǔ)表
2.WHERE執(zhí)行順序WHERE執(zhí)行會(huì)從至下往上執(zhí)行擺放WHERE子句時(shí),把能過(guò)濾大量數(shù)據(jù)的條件放在最下邊
3.ISNULL和ISNOTNULL當(dāng)要過(guò)濾列為空數(shù)據(jù)或不為空的數(shù)據(jù)時(shí)使用
4.使用表別名當(dāng)查詢(xún)時(shí)出現(xiàn)多個(gè)表時(shí),查詢(xún)時(shí)加上別名,避免出現(xiàn)減少解析的時(shí)間字段歧義引起的語(yǔ)法錯(cuò)誤。
WHERE執(zhí)行速度比HING快盡可能的使用WHERE代替HING
6.*號(hào)引起的執(zhí)行效率盡量減少使用SELECT*來(lái)進(jìn)行查詢(xún),當(dāng)你查詢(xún)使用*,數(shù)據(jù)庫(kù)會(huì)進(jìn)行解析并將*轉(zhuǎn)換為全部列。
二、替代優(yōu)化1、用>=替代>
2、用UNION替換OR(適用于索引列)
3、用IN代替OR
4、UNIONALL與UNIONUNIONALL重復(fù)輸出兩個(gè)結(jié)果集合中相同記錄如果兩個(gè)并集中數(shù)據(jù)都不一樣.那么使用UNIONALL與UNION是沒(méi)有區(qū)別的,
5、分離表和索引總是將你的表和索引建立在另外的表空間內(nèi)決不要將這些對(duì)象存放到SYSTEM表空間里
三、一些優(yōu)化技巧
1、計(jì)算表的記錄數(shù)時(shí) SELECTCOUNT(SI.STUDENT_ID)FROMSTUDENT_INFOSI(STUDENT_ID為索引)與SELECTCOUNT(*)FROMSTUDENT_INFOSI執(zhí)行時(shí).上面的語(yǔ)句明顯會(huì)比下面沒(méi)有用索引統(tǒng)計(jì)的語(yǔ)句要快
2.使用函數(shù)提高SQL執(zhí)行速度
當(dāng)出現(xiàn)復(fù)雜的查詢(xún)SQL語(yǔ)名,可以考慮使用函數(shù)來(lái)提高速度查詢(xún)學(xué)生信息并查詢(xún)學(xué)生(李明)個(gè)人信息與的數(shù)學(xué)成績(jī)排名如
4、用EXISTS(NOTEXISTS)代替IN(NOTIN)
在執(zhí)行當(dāng)中使用EXISTS或者NOTEXISTS可以高效的進(jìn)行查詢(xún)
以上就是聚合函數(shù)如何使用的所有內(nèi)容,這些都是一些基礎(chǔ)的知識(shí)點(diǎn),如果大家還想更加深入的了解聚合函數(shù),那么可以關(guān)注我們文軍營(yíng)銷(xiāo)的官網(wǎng),在這里面還有更多精彩的內(nèi)容等著你去發(fā)現(xiàn)。
推薦閱讀
說(shuō)明:如果您有任何疑問(wèn)或想咨詢(xún)其他業(yè)務(wù)請(qǐng)撥打電話(huà) 400 685 0732