A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 盘晟 于 2013-5-12 15:22 编辑

Table为T_SCORES:


如何在SQL查询中,输入代码能得到下面的结果?

Name
湖人10
奇才20
拜仁12

select distinct name,()as 胜,()as负 from t_scores,括号里面应该怎么输才能统计出3个队的胜负数?

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

4 个回复

倒序浏览
select Name,
Sum{
case Score
when  N'胜'  then  1
else  0
end
} as 胜,
Sum{
case  Score
when  N'负'  then  1
else  0
end
} as 负
from T_Scores
group by Name
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    输出结果:
    Name        胜           负
    拜仁          1             2
    湖人          1             0
    奇才          2             0
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

回复 使用道具 举报
这个问题。你在下一个视频里就能找到答案了……我也复习复习
首先把胜负结果进行Sum,这里用到和C#里边很像的switch-case   
sum{case Score
when  N'胜'  then  1
else  0
end}
汉字前边加N,
还要起个列别名 as  胜
那么就基本上完成了。Name那里加不加distinct都可以。最后来个分组,group by  Name  哇哦。快忘干净了……

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
额,谢谢你!我看了下一个视频了,看了老师说的那个以后,才恍然大悟:
select name,
sum(case
when score='胜' then 1
else 0
end
)as '胜'

sum(case
when score='负' then 1
else 0
end
)as '负'
from t_scores
group by name

函数太多,自己做的时候,sum一下想不起来,看的时候很好理解,自己做的时候就蒙了!笔记中有些函数也没记到,2008中的汉字貌视不用加N也没出错呢!
不过还是感谢你,能够忙里抽空过来帮我!

回复 使用道具 举报
许庭洲 发表于 2013-5-10 21:25
select Name,
Sum{
case Score

这么详细,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马