oracle 算姓氏比例

  • 2213
  • 0

今天忽然好奇台灣的姓氏比例

GOOGLE了一下發現

今天忽然好奇台灣的姓氏比例

GOOGLE了一下發現

image

就這張圖…

想一想乾脆來自己的資料庫做測試好了

第一版

WITH sumName
       AS (SELECT  
                    COUNT (firstname) namecount,
                    firstname
             FROM   (SELECT   SUBSTR (
                                 name,
                                 0,
                                 CASE
                                    WHEN LENGTH (name) > 3 THEN 2
                                    ELSE 1
                                 END
                              )
                                 firstname
                       FROM   EMPLOYEE
                      WHERE   ROWNUM < 1000000)
           GROUP BY   firstname)
  SELECT   ROUND (
              namecount / (  SELECT   SUM (namecount) sumn FROM sumName) * 100,
              ,3
           )
           || '%'
              perc,
           firstname
    FROM   sumName
ORDER BY   perc DESC

都只抓100萬筆,時間一樣是8秒

第二次又換用了一些ORACLE自己的功能存測試

image

結果是這樣。

怎麼落差很大…

不過再只抓10000筆時就真的是陳林滿天下了

怪怪~

 

有錯誤請多多指教,謝謝

PS : 第二版感覺沒啥意義,以經拿掉了

在這邊用RATIO_TO_REPORT感覺會讓人混亂,實在是沒必要留著