友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

SQL 21日自学通(V3.0)(PDF格式)-第29章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!






  DONKNOW     3B  175 65   23    50     10     1      4   15 



  WORLEY      LF  157 49   15    35     8      3      3   16 



  DAVID       OF  187 70   24    48     4      0      17  42 



  HAMHOCKER   3B  50   12  10    10     2      0      0   13 



EMAIL wyhsillypig@163。                                    62 


…………………………………………………………Page 63……………………………………………………………

SQL 21  日自学通(V1。0)                                          翻译人   笨猪 



   CASEY        DH  1    0    0      0      0        0      0   1 



COUNT 



   该函数将返回满足 WHERE 条件子句中记录的个数  例如你想知道都有哪一个球员的 



击球数小于 350     可以这样做 



   输入/输出 



   SQL》 SELECT  COUNT(  ) FROM   TEAMSTATS   WHERE   HITS/AB 。35 



          COUNT(  ) 



          4 



   为了使这段代码更易读  可以使用别名 



   输入/输出 



   SQL》SELECT  COUNT(   ) NUM_BELOW_350   FROM   TEAMSTATS 



       WHERE   HITS/AB 。35 



          NUM_BELOW_350 



          4 



   如果我们用列名来替换掉括号中的星号时会结果与原来有什么不同呢  试一下 



   SQL》  SELECT  COUNT(NAME)   NUM_BELOW_350   FROM   TEAMSTATS 



         WHERE   HITS/AB     。35 



          NUM_BELOW_350 



          4 



   结果是一样的 因为你所选择的NAME 列与 WHERE 子句并不相关 如果你在使用 count 



时无 WHERE 子句  那么它将会返回表中的所有记录的个数 



   输入/输出 



   SQL》  SELECT  COUNT(  )  FROM  TEAMSTATS 



        COUNT(   ) 



        6 



SUM 



    SUM  就如同它的本意一样  它返回某一列的所有数值的和                 如果想知道队员总打点的 



总和是多少  试一下 



EMAIL wyhsillypig@163。                                          63 


…………………………………………………………Page 64……………………………………………………………

SQL 21  日自学通(V1。0)                                               翻译人   笨猪 



    输入 



    SQL》SELECT   SUM(SINGLES)   TOTAL_SINGLES   FROM    TEAMSTATS 



    输出 



           TOTAL_SINGLES 



           174 



    如果想得到多个列的和  可按如下所做 



    输入/输出 



    SQL》     SELECT     SUM(SINGLES)     TOTAL_SINGLES      SUM(DOUBLES) 



          TOTAL_DOUBLES    SUM(TRIPLES) TOTAL_TRIPLES  SUM(HR)   TOTAL_HR 



          FROM TEAMSTATS 



      TOTAL_SINGLES    TOTAL_DOUBLES    TOTAL_TRIPLES    TOTAL_HR 



      174              32               5                29 



    类似地    如果想找一下所有的点数在 300            包括 300   以上的的队员  则语句如下 



    输入/输出 



    SQL》SELECT  SUM(SINGLES)   TOTAL_SINGLES   SUM(DOUBLES)   TOTAL_DOUBLES 



          SUM(TRIPLES)  TOTAL_TRIPLES   SUM(HR)   TOTAL_HR   FROM   TEAMSTATS 



          WHERE   HITS/AB 》=。300 



      TOTAL_SINGLES    TOTAL_DOUBLES      TOTAL_TRIPLES    TOTAL_HR 



      164              30                 5                29 



    想估计一下一个球队的平均中球率 



    输入/输出 



    SQL》SELECT   SUM(HITS)/SUM(AB)   TEAM_AVERAGE     FROM   TEAMSTATS 



         TEAM_AVERAGE 



         。33706294 



    SUM 只能处理数字  如果它的处理目标不是数字  你将会收到如下信息 



    输入/输出 



    SQL》SELECT   SUM(NAME)    FROM   TEAMSTATS; 



    ERROR 



    ORA…01722    invalid  number 



    no rows selected 



    该错误信息当然的合理的           因为NAME 字段是无法进行汇总的 



EMAIL  wyhsillypig@163。                                               64 


…………………………………………………………Page 65……………………………………………………………

SQL 21  日自学通(V1。0)                                       翻译人   笨猪 



AVG 



   AVG 可以返回某一列的平均值         如果你想知道漏球的平均数请看下例 



   输入 



   SQL》SELECT  AVG(SO)  AVE_STRIKE_OUTS FROM  TEAMSTATS 



   输出 



           AVE_STRIKE_OUTS 



           16。166667 



   下边的例子反映了 SUM 与 AVG 的不同之处 



   输入/输出 



   SQL》SELECT  AVG(HITS/AB) TEAM_AVERAGE   FROM  TEAMSTATS 



       TEAM_AVERAGE 



       。26803448 



分析 



   可是在上一个例子中的打中率是。3370629          这是怎么回事呢      AVG  计算的是打中的次 



数与总打击次数商的平均值          然而在上一个例子中是对打中次数和打击次数分别求和后在 



进行相除的     举例来说  A  队员打了 100 杆     中了 50  次  那么他的平均值是 0。5     B  队员 



打了 1 杆   没打中  他的平均值是 0。0      而 0。0 与 0。5 的平均值是 0。25 如果你按打 101 杆 



中 50 杆计算  那么结果就会是正确的了          下边的例子将会返回正确的击中率 



输入/输出 



SQL》SELECT  AVG(HITS)/AVG(AB) TEAM_AVERAGE  FROM  TEAMSTATS 



       TEAM_AVERAGE 



       。33706294 



与 SUM 函数一样  AVG 函数也只能对数字进行计算 



MAX 



   如果你想知道某一列中的最大值  请使用 MAX             例如   你想知道谁的打点最高 



   输入 



   SQL》SELECT  MAX(HITS)  FROM  TEAMSTATS 



EMAIL wyhsillypig@163。                                       65 


…………………………………………………………Page 66……………………………………………………………

SQL 21  日自学通(V1。0)                                        翻译人   笨猪 



   输出 



           MAX(HITS) 



           70 



你能从这里知道是谁打的最多吗 



   输入/输出 



   SQL》SELECT  NAME   FROM   TEAMSTATS  WHERE   HITS=MAX  HITS 



   ERROR at line 3 



   ORA…00934  group function is not allowed here 



   很不幸  你不能      这一信息提示你汇总函数无法在 WHERE           子句中使用  但是请别灰 



心  在第 7  天的  子查询  深入 SELECT  语句  将引入子查询的概念并会给出知道谁是打 



点最多人解决方案 



   如果把它用的非数字场合会有什么情况出现呢 



   输入/输出 



   SQL》SELECT  MAX(NAME)   FROM   TEAMSTATS 



          MAX(NAME) 



          WORLEY 



   这是一个新现象  MAX       返回了最高的字符串        最大的是 z    所以说 MAX    既可以处 



理数值也可以处理字符 



MIN 



   MIN 与 MAX 类似  它返回一列中的最小数值  例如  你想知道打杆的最小值是多少 



   输入 



   SQL》SELECT  MIN  AB    FROM   TEAMSTATS 



   输出 



           MIN(AB) 



          
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!