oracle count函數


用來返回查詢的行數。

當指定distinct時,不能接order_by_clause;
如果指定表達式,count返回表達式不為空的值;
當指定*號時,它返回所有行,含重復行和空值。count從不返回null;
count(*) 與 count(1) 執行結果相同,但1並不是指第一列。列名為參數時,查的是不含NULL值的行數;

Aggregate Examples (聚合)

-- 含重復行和空值,所有行
SELECT COUNT(*) "Total" FROM employees;
SELECT COUNT(1) "Total" FROM employees;

     Total
----------
       107
-- 接條件
SELECT COUNT(*) "Allstars" FROM employees
   WHERE commission_pct > 0;

 Allstars
---------
       35
-- commission_pct 不為空,但有重復行
SELECT COUNT(commission_pct) "Count" FROM employees;

     Count
----------
        35
-- 不含重復行和空值
SELECT COUNT(DISTINCT manager_id) "Managers" FROM employees;

  Managers
----------
        18

Analytic Example (分析)


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

LAST_NAME                     SALARY  MOV_COUNT
------------------------- ---------- ----------
Olson                           2100          3
Markle                          2200          2
Philtanker                      2200          2
Landry                          2400          8
Gee                             2400          8
Colmenares                      2500         10
Patel                           2500         10

參考:
[1]:https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions032.htm "oracle count"
[2]:http://sql.standout-dev.com/2017/01/count-vs-count1-again/ "Count(*) Vs Count(1) Again?"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM