OCP-1Z0-051-V9.02-108题

108. Which two statements are true regarding the COUNT function? (Choose two.)

A. The  COUNT function can be used only for CHAR, VARCHAR2,  and NUMBER data types.

B. COUNT(*) returns the number of rows including duplicate rows and rows containing NULL  value in

any of the columns.

C. COUNT(cust_id) returns the number of rows including rows with duplicate customer IDs and NULL

value in the CUST_ID column.

D. COUNT(DISTINCT inv_amt)returns the number of rows excluding排除在外 rows containing duplicates and

NULL values in the INV_AMT column.

E. A SELECT statement using the  COUNT function with a  DISTINCT keyword   cannot have a

WHERE clause.

Answer: BD
 
答案解析:
参考:http://blog.csdn.net/rlhua/article/details/12868639
COUNT函数有以下三种格式:
• COUNT(*)
• COUNT(expr)
• COUNT(DISTINCT expr)
COUNT(*)用于返回表中符合SELECT语句标准的行数,包括重复行和在任何列中含有 空值的行。
如果SELECT语句中包含WHERE子句,则COUNT(*)会返回符合WHERE子 句中条件的行数。
相反,COUNT(expr)返回由expr标识的列中非空值的数量。
COUNT(DISTINCT expr)返回由expr标识的列中不同非空值的数量。

 
测试实验如下表:有两组一样的row,
scott@TEST0924> select * from test;
 
     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
----------     ----------      ---------        ----------      --------           - ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-DEC-80               800                        20
      7499 ALLEN      SALESMAN        7698 20-FEB-81          1600        300         30
      7521 WARD       SALESMAN        7698 22-FEB-81         1250        500         30
      7566 JONES      MANAGER         7839 02-APR-81         2975                         20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
      7566 JONES      MANAGER         7839 02-APR-81         2975                         20
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
 
7 rows selected.
 
count(*)时,返回所有的行数,包括重复的,以及有空值的
 
scott@TEST0924> select count(*) from test;
 
  COUNT(*)
----------
         7
count(distinct comm) ,首先去掉重复的和空值的,然后总计行
scott@TEST0924> select count(distinct comm) from test;
 
COUNT(DISTINCTCOMM)
-------------------
                  3
 
 

COUNT returns the number of rows returned by the query. You can use it as an aggregate or analytic function.你可以用它作为一个聚合函数或解析函数

If you specify DISTINCT, then you can specify only the query_partition_clause of theanalytic_clause. Theorder_by_clause and windowing_clause are not allowed.

If you specify expr, then COUNT returns the number of rows whereexpr is not null. You can count either all rows, or only distinct values ofexpr.

If you specify the asterisk (*), then this function returns all rows, including duplicates and nulls. COUNT never returns null.

 

你可能感兴趣的:(OCP-1Z0-051,OCP11g解析)