• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
E流冷涧
开始归纳总结。
博客园    首页    新随笔    联系   管理    订阅  订阅

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)也还是不好用,
好今天就到这里吧。(其他发现慢慢补充吧)
posted @ 2008-04-29 20:43  wzc998  阅读(177)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3