<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 38, comments - 2, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    上周在優(yōu)化預(yù)警分析的工作中,發(fā)現(xiàn)由于分頁功能需要提供總條數(shù) ,項(xiàng)目組內(nèi)的普遍做法是進(jìn)行兩次sql查詢,一次用count(*)獲得總條數(shù),一次獲取真正的展現(xiàn)數(shù)據(jù)。其實(shí)oracle提供了olap函數(shù)對此進(jìn)行優(yōu)化,可通過偽列:count(*) over()獲得當(dāng)前sql的總條數(shù)。

        比如:select t.*,count(*) over() from dual 會返回總條數(shù)為1。
     
        olap函數(shù)主要用于統(tǒng)計分析,熟練掌握能很好的提高sql執(zhí)行效率。
            count(*) over() 具體功能描述如下:
           對一組內(nèi)發(fā)生的事情進(jìn)行累積計數(shù),如果指定*或一些非空常數(shù),count將對所有行計數(shù),如果指定一個表達(dá)式,count返回表達(dá)式非空賦值的計數(shù),當(dāng)有相同值出現(xiàn)時,這些相等的值都會被納入被計算的值;可以使用DISTINCT來記錄去掉一組中完全相同的數(shù)據(jù)后出現(xiàn)的行數(shù)。
    SAMPLE:下面例子中計算每個員工在按薪水排序中當(dāng)前行附近薪水在[n-50,n+150]之間的行數(shù),n表示當(dāng)前行的薪水
           例如,Philtanker的薪水2200,排在他之前的行中薪水大于等于2200-50的有1行,排在他之后的行中薪水小于等于2200+150的行沒有,所以count計數(shù)值cnt3為2(包括自己當(dāng)前行);cnt2值相當(dāng)于小于等于當(dāng)前行的SALARY值的所有行數(shù)
    sql如下:

     SELECT last_name, salary, COUNT(*) OVER () AS cnt1,
               COUNT(*) OVER (ORDER BY salary) AS cnt2,
               COUNT(*) OVER (ORDER BY salary RANGE BETWEEN 50 PRECEDING AND 150 FOLLOWING) AS cnt3 FROM employees;

    結(jié)果如下 :

    LAST_NAME  SALARY  CNT2   CNT2  CNT3
    Olson          2100 107 1 3
    Markle 2200 107 3 2
    Philtanker 2200 107 3 2
    Landry 2400 107 5 8
    Gee 2400 107 5 8
    Colmenares 2500 107 11 10
    Patel 2500 107 10 10

    主站蜘蛛池模板: 99re6免费视频| 青娱分类视频精品免费2| 猫咪免费人成网站在线观看入口| 亚洲国产aⅴ成人精品无吗| 黄色免费在线观看网址| 免费观看亚洲人成网站| 色噜噜综合亚洲av中文无码| 亚洲AV无码一区二区三区牛牛| 免费一级毛片在线播放放视频| 69视频在线是免费观看| 亚洲女同成人AⅤ人片在线观看| 亚洲高清免费在线观看| ssswww日本免费网站片| 性感美女视频免费网站午夜| 亚洲色无码专区在线观看| 亚洲精品久久无码av片俺去也| 无码国产精品久久一区免费| 久久精品国产亚洲夜色AV网站| 亚洲Av永久无码精品黑人| 免费观看无遮挡www的小视频| 久久精品国产精品亚洲| 久久亚洲精品高潮综合色a片| 国产18禁黄网站免费观看| 91在线免费视频| 国产乱人免费视频| 久久免费香蕉视频| 亚洲国产成人久久一区WWW| 亚洲精品美女久久久久久久| 亚洲成a人片在线观看日本麻豆| 国产拍拍拍无码视频免费| 国产一级淫片a视频免费观看| 久久久WWW免费人成精品| 亚洲黄色三级网站| 免费一级黄色毛片| 亚洲精品国产suv一区88| 亚洲人成无码久久电影网站| 色婷婷精品免费视频| 久久亚洲国产伦理| 无码人妻丰满熟妇区免费| 国产AⅤ无码专区亚洲AV| 一级毛片**免费看试看20分钟 |