久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      一起聊聊Oracle高級(jí)查詢(xún)(實(shí)例詳解)

      本篇文章給大家?guī)?lái)了關(guān)于Oracle高級(jí)查詢(xún)的相關(guān)知識(shí),其中包括了分組查詢(xún)、多表查詢(xún)和子查詢(xún),希望對(duì)大家有幫助。

      一起聊聊Oracle高級(jí)查詢(xún)(實(shí)例詳解)

      Oracle高級(jí)查詢(xún)

      高級(jí)查詢(xún)?cè)跀?shù)據(jù)庫(kù)的開(kāi)發(fā)過(guò)程中應(yīng)用廣泛,從分組查詢(xún)、多表查詢(xún)和子查詢(xún)?nèi)齻€(gè)方面介紹Oracle的高級(jí)查詢(xún)。

      分組查詢(xún)

      分組查詢(xún)是按照一定的規(guī)則進(jìn)行分組,分組以后數(shù)據(jù)會(huì)聚合,需要使用聚合函數(shù),但是使用聚合函數(shù)不一定要分組,分組的關(guān)鍵字是group by。

      常用的聚合函數(shù)有:最大值max(),最小值min(),平均值avg(),總和sum(),統(tǒng)計(jì)個(gè)數(shù)count()

      count函數(shù)使用列名時(shí)會(huì)自動(dòng)忽略空值

      一起聊聊Oracle高級(jí)查詢(xún)(實(shí)例詳解)

      nvl函數(shù)可以防止count自動(dòng)忽略空值,它的作用是當(dāng)comm為空時(shí)返回0,因?yàn)?是非空,所以會(huì)進(jìn)入統(tǒng)計(jì)總數(shù)。

      一起聊聊Oracle高級(jí)查詢(xún)(實(shí)例詳解)

      group by子查詢(xún)

      在select 列表中所有未包含在聚合函數(shù)中的列都應(yīng)該包含在group by子句中。

      單列分組

      求每個(gè)部門(mén)的平均工資,顯示部門(mén)號(hào),部門(mén)的平均工資。

      select deptno,avg(sal) from emp group by deptno order by deptno

      多列分組

      按部門(mén),不同職位,統(tǒng)計(jì)員工的工資總和

      select detpno,job,sum(sal) from emp group by deptno,job order by deptno

      過(guò)濾分組

      having子句的使用

      where與having的區(qū)別

      • where子句中不能使用聚合函數(shù),先過(guò)濾后分組
      • having子句中可以使用聚合函數(shù),先分組后過(guò)濾

      注意:從SQL優(yōu)化的角度上看,盡量使用where,因?yàn)閣here使得分組記錄數(shù)大大降低,從而提高效率。

      求平均工資大于2000的部門(mén)

      select deptno,avg(sal) from emp where(avg(sal)) > 2000 group by deptno

      一起聊聊Oracle高級(jí)查詢(xún)(實(shí)例詳解)

      where子句中不能使用聚合函數(shù),所以報(bào)錯(cuò),改成having xxx子句即可。

      select deptno,avg(sal) from emp group by deptno having(avg(sal)) > 2000

      在分組查詢(xún)中使用order by

      求每個(gè)部門(mén)的平均工資,顯示部門(mén)號(hào),部門(mén)的平均工資,按照工資升序排列。

      select deptno,avg(sal) from emp group by deptno order by avg(sal)

      也可以按列的別名排序

      select deptno,avg(sal) avgsal from emp group by deptno order by avgsal

      還可以按列的序號(hào)排序,平均工資是第2列

      select deptno,avg(sal) from emp group by deptno order by 2

      降序排列加上desc即可

      select deptno,avg(sal) from emp group by deptno order by 2 desc

      分組函數(shù)的嵌套

      求部門(mén)平均工資的最大值

      select max(avg(sal)) from emp group by deptno

      group by語(yǔ)句增強(qiáng)

      主要用在group by語(yǔ)句報(bào)表功能

      每個(gè)部門(mén),安裝不同職位,求工資總和,部門(mén)小結(jié),總結(jié)。

      一起聊聊Oracle高級(jí)查詢(xún)(實(shí)例詳解)

      可以使用rollup函數(shù)

      select deptno,job,sum(sal) from emp group by rollup(deptno,job)

      一起聊聊Oracle高級(jí)查詢(xún)(實(shí)例詳解)

      再設(shè)置一下顯示格式,break on deptno表示相同的部門(mén)號(hào)只顯示一個(gè),skip 1表示不同的部門(mén)號(hào)之間空1行。

      一起聊聊Oracle高級(jí)查詢(xún)(實(shí)例詳解)

      完善報(bào)表顯示

      增加標(biāo)題,頁(yè)碼等

      ttitle col 15 ‘我的報(bào)表’ col 35 sql.pno

      設(shè)置標(biāo)題,空15列顯示我的報(bào)表,然后空35列顯示頁(yè)碼

      col deptno heading 部門(mén)號(hào)

      col job heading 職位

      col sum(sal) heading 工資總額

      以上3行設(shè)置列標(biāo)題

      break on deptno skip 1

      設(shè)置顯示格式,相同的部門(mén)號(hào)只顯示一個(gè),不同部門(mén)號(hào)之間空1行

      將這些設(shè)置保存到一個(gè)sql文件(注意要改成ANSI編碼,否則會(huì)出現(xiàn)亂碼并且設(shè)置無(wú)效),然后通過(guò)get命令讀取執(zhí)行。再次執(zhí)行查詢(xún)語(yǔ)句,得到如下報(bào)表。如果出現(xiàn)了多頁(yè),為了顯示美觀,可以設(shè)置一頁(yè)顯示

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)