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