数据表如下学号 考试次数 是否通过
001 1 0
001 2 0
001 3 1
002 1 1
003 1 0
003 1 0要求查询结果:
学号 是否通过
001 1
002 1
003 0
001 1 0
001 2 0
001 3 1
002 1 1
003 1 0
003 1 0要求查询结果:
学号 是否通过
001 1
002 1
003 0
解决方案 »
- 如何实现MSSQL中Sql标签select随机读取数据
- 紧急sql语句 99999999999999999999
- 用JAVA把CSV文件导入SQL2005
- access sql 语句 clng在sqlserver中如何实现?
- 2005sql安装不上的问题!急!
- 除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
- sql server 链接db2 查询视图中汉字都显示不处理啊
- 两台机器分担:一台定时建立全文索引,一台响应用户查询?
- 100分! 高手来挑战,关于sqlserver业务流的监控
- 合并不同table中的列
- SQL select (查询字符串)初级问题请教
- 怎样用SQL语句替换备注类型的字段值中的指定字符串?
学号,
SUM(是否通过) AS 是否通过
FROM tb
GROUP BY 学号
insert into tb values('001' , 1 , 0 )
insert into tb values('001' , 2 , 0 )
insert into tb values('001' , 3 , 1 )
insert into tb values('002' , 1 , 1 )
insert into tb values('003' , 1 , 0 )
insert into tb values('003' , 1 , 0 )
goselect 学号 , max(是否通过) 是否通过 from tb group by 学号drop table tb/*
学号 是否通过
---------- -----------
001 1
002 1
003 0(所影响的行数为 3 行)
*/
学号 考试次数 是否通过
001 1 0
001 2 0
001 3 1
002 1 1
003 1 0
003 1 0 要求查询结果:
学号 是否通过
001 1
002 1
003 0
*/CREATE table #t
(code varchar(8) not null,
times int not null,
flag smallint not null,
)
insert into #t
select '001',1,0
UNION ALL
select '001',2,0
UNION ALL
select '001',3,1
UNION ALL
select '002',1,1
UNION ALL
select '003',1,0
UNION ALL
select '003',2,0select code,case when sum(flag)>0 then 1 else 0 end as flag from #t
group by codeDROP TABLE #T/*
(6 行受影响)
code flag
-------- -----------
001 1
002 1
003 0(3 行受影响)*/
from 表名
group by 学号;
“是否通过”是bit类型有点麻烦
from table
group by 学号
from table
group by 学号
正解
insert into #tb11 values('001',1,0)
insert into #tb11 values('001',2,0)
insert into #tb11 values('001',3,1)
insert into #tb11 values('002',1,1)
insert into #tb11 values('003',1,0)
insert into #tb11 values('003',1,0)
select * from #tb11select 学号,是否通过 from #tb11 where 是否通过=1
union all
select top 1 学号,是否通过 from #tb11 b where not exists (select * from #tb11 where 学号=b.学号 and 考试次数>b.考试次数) and 是否通过=0学号 是否通过
---------- -----
001 1
002 1
003 0(3 行受影响)
select 学号 , max(是否通过) 是否通过 from tb group by 学号
2.用9楼的方法,使用复杂的查询语句。
max(是否通过) 是否通过
from table
group by 学号
from 表名
group by 学号;
from 表名
group by 学号;
正确
from 数据表
group by 学号