select
F1,
TYPE0=sum(case TYPE when 0 then 1 else 0 end),
TYPE1=sum(case TYPE when 1 then 1 else 0 end)
from
表A
group by
F1
F1,
TYPE0=sum(case TYPE when 0 then 1 else 0 end),
TYPE1=sum(case TYPE when 1 then 1 else 0 end)
from
表A
group by
F1
解决方案 »
- 如何对一张表进行水平分割 sql2000
- 邮件服务器怎么解决好?
- 一个SQL算法问题
- 求一个存储过程的写法
- 有关SQL Server 中pubs数据库里的两个表titles和sales
- sql server05处理不规则excel
- 数据库导入数据只想导一列怎么做?急急急急急急急急急急急急急!!!
- 监控库内所有表的触发器该如何实现?
- 我是新手请帮我做一下触发器 先给出1分,成功后就加到100分
- 怎样看某个数据库正被谁用?如何把他们踢出去,如果我要恢复数据库的话?
- 超难问题,两个SQLSERVER服务器不在同地区,其中两数据库中的表结构不相同,但是都可以一一对应起来,如何实现这两个表的双向同步.
- 用xp_sendmail带附件发送邮件,收件人打开附件后中文是乱码,怎么解决?
SUM(CASE TYPE WHEN 1 THEN 1 ELSE 0 END) AS TYPE1
FROM A
GROUP BY F1
insert into @A select '001',1
insert into @A select '001',1
insert into @A select '001',0
insert into @A select '002',0
select
F1,
TYPE0=sum(case TYPE when 0 then 1 else 0 end),
TYPE1=sum(case TYPE when 1 then 1 else 0 end)
from
@A
group by
F1/*
F1 TYPE0 TYPE1
---------- ----------- -----------
001 1 2
002 1 0
*/
insert into @A select '001',1
insert into @A select '001',1
insert into @A select '001',0
insert into @A select '002',0
select
F1,TYPE0=[0],TYPE1=[1]
from @A
pivot(
COUNT(TYPE)
FOR TYPE in([0],[1])
) F1/*--结果
F1 TYPE0 TYPE1
---------- ----------- -----------
001 1 2
002 1 0(2 row(s) affected)
--*/
另to:zjcxc(邹建)。pivot是什么意思,不是T-SQL语句的吧,那是哪种SQL语法?请教!