oracle学习日记1
最近觉得oracle越来越重要了,不熟悉一下还真做不来(程序员),所以我有了恶补一下的心思了.就从今天开始吧,吼吼.(080429距奥运会还有101天)
今天学习下合计函数吧,
aggregate_function([DISTINCT | ALL] expression)
aggregate函数包括:SUM, COUNT, AVG, MAX, MIN等.并且默认是使用ALL的。
这个函数使用很简单,需要注意的是:
当expression列存在NULL的时候,COUNT(expression)的结果不包括expression列为空的行
ORDER_NBR CUST_NBR SALES_EMP_ID CORDER_DT EXPECTED_
--------- -------- ------------ ---------- --------- ---------
1001 1 7354 99 22-JUL-01 23-JUL-01
1000 1 7354 19-JUL-01 24-JUL-01
1002 5 7368 12-JUL-01 25-JUL-01
对上面的数据执行:结果COUNT(SALE_PRICE)要比总行数少.
SELECT COUNT(*), COUNT(sale_price) FROM cust_order;
COUNT(*) COUNT(SALE_PRICE)
-------- -----------------
3 1
SELECT AVG(SALE_PRICE) FROM CUST_ORDER;将得到99而不是33。所以应该这样使用
SELECT AVG(NVL(SALE_PRICE,0)) FROM CUST_ORDER;这回结果就是33啦。
这里注意即使使用AVG(ALL SALE_PRICE)也还是不好用,
好今天就到这里吧。(其他发现慢慢补充吧)
今天学习下合计函数吧,
aggregate_function([DISTINCT | ALL] expression)
aggregate函数包括:SUM, COUNT, AVG, MAX, MIN等.并且默认是使用ALL的。
这个函数使用很简单,需要注意的是:
当expression列存在NULL的时候,COUNT(expression)的结果不包括expression列为空的行
ORDER_NBR CUST_NBR SALES_EMP_ID CORDER_DT EXPECTED_
--------- -------- ------------ ---------- --------- ---------
1001 1 7354 99 22-JUL-01 23-JUL-01
1000 1 7354 19-JUL-01 24-JUL-01
1002 5 7368 12-JUL-01 25-JUL-01
对上面的数据执行:结果COUNT(SALE_PRICE)要比总行数少.
SELECT COUNT(*), COUNT(sale_price) FROM cust_order;
COUNT(*) COUNT(SALE_PRICE)
-------- -----------------
3 1
SELECT AVG(SALE_PRICE) FROM CUST_ORDER;将得到99而不是33。所以应该这样使用
SELECT AVG(NVL(SALE_PRICE,0)) FROM CUST_ORDER;这回结果就是33啦。
这里注意即使使用AVG(ALL SALE_PRICE)也还是不好用,
好今天就到这里吧。(其他发现慢慢补充吧)