黑马程序员技术交流社区

标题: SQL中sum语句原理? [打印本页]

作者: 林其响    时间: 2012-4-17 09:39
标题: SQL中sum语句原理?
有一张表T_Scores,记录比赛成绩  sDate      sName       Score
2008-8-8     拜仁         胜
2008-8-9     奇才         胜
2008-8-9     湖人         胜
2008-8-10   拜仁         负
2008-8-8     拜仁         负
2008-8-12   奇才         胜


要求输出下面的格式:
Name 胜  负
拜仁 1   2
湖人 1   0
奇才 2   0


SELECT sname,
SUM(CASE
WHEN score='胜' THEN 1   ELSE 0   END) AS 胜 ,
SUM(CASE                        
WHEN score='负' THEN 1 ELSE 0 END) AS 负
FROM test3
GROUP BY sname

这段查询语句中
SUM(CASE
WHEN score='胜' THEN 1   ELSE 0   END) AS 胜  sum函数是如何统计的?原理是怎么实现的? 我是认为当score='负' 的时候在这断代码中sum也会统计可是SQL语句是如何不统计这个呢?

作者: 孙杰    时间: 2012-4-17 09:41
SUM(CASE
WHEN score='胜' THEN 1   ELSE 0   END) AS
当胜的时候 得到的结果是1  当负时候得到结果是0
X+0还不是等于X吗
所以他只是记录胜时候的次数
作者: 周俊辉    时间: 2012-4-18 09:50
就是 Score 为 胜 的个数和。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2