sql查询,紧急,跪求帮助!200分

来源:百度知道 编辑:UC知道 时间:2024/06/28 20:25:25
1:写一个查询,要求输出一张表所有记录并输入一个有多少条记录!
2:有个表TEMP内容是:
日期 成绩
1号 及格
1号 及格
1号 不及格
2号 不及格
2号 及格
2号 及格
2号 不及格
写一个查询语句,输出结果是:
日期 及格 不及格
1号 2 1
2号 2 2
请各位帮忙写出SQL语句,并写出注释,小弟跪谢各位!
就以ms SQL SERVER为例,写T-SQL语句 第二题的输出结果的数字是表示它们有多少条记录,例如,
1号 2 1
表示的是,1号那天,及格的有2条记录 不及格的有1条记录

第一题
select a.*,b.num from 表名 as a,(select count(*) from 表名) as b
第二题
select 日期
,sum(case when 成绩='及格' then 1 else 0 end) as 及格
,sum(case when 成绩='不及格' then 1 else 0 end) as 不及格
from temp
group by 日期

你运行下就可以了.试试 可以的
我给你解释下吧!
case when 成绩='及格' then 1 else 0 end
就是当 成绩及格时 就返回1 否则返回0
因为这是一条记录 ,所以是1
最后利用 sum() 统计函数来分组统计 就可以了
select 日期
,(case when 成绩='及格' then 1 else 0 end) as 及格
,(case when 成绩='不及格' then 1 else 0 end) as 不及格
from temp
你把上面 这语句 和 最上面的语句对比下 就知道结果怎么来的了
旋转 然后 聚合

1.当你使用查询语句的时候,结果集下面自然会显示选择的行数,也就是总的记录数

2.
select 日期,
sum(case 成绩 when '及格' then 1 else 0 end) as '及格',
sum(case 成绩 when '不及格' then 1 else 0 end) as '不及格'
from temp
group by 日期;

第一个是什么表啊?

select 日期,
sum(case 成绩 when '及格' then 1 else 0 end) as 及格,
sum(case 成绩 when '不