SQL子查询统计

2张表A和B A是主表 关联字段 A:visit_id B:visitId
2表数据如下:
A:
visit_id
1
2
3
B:
visitId typeId
1 65
1 14
2 65
2 14
3 65
3 14
想要得到结果集:
visit_id次数 14出现次数 65出现次数
3 3 3

select
count(distinct(b.visit_id))'visit_id次数',

count(case when typeid=14 then 1 else 0)'14出现次数',
count(case when typeid=65 then 1 else 0)'65出现次数' from a
inner join b on a.visit_id=b.visitId
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-05
把楼上的代码改下 如果那个typeId 字段是int就把case中的引号去掉
select count(distinct(b.visitId)) 'visit_id次数' ,sum(case b.typeId when '14' then 1 else 0 end ) '14出现次数',
sum(case b.typeId when '65' then 1 else 0 end ) '65出现次数' from A a inner join B b on a.visit_id =b.typeId
第2个回答  2013-02-05
select visitid,sum(cast typedid when 14 then 1else 0 end ),
sum(cast typedid when 14 then 1else 0 end )
from b
第3个回答  2013-02-05
三列数值需要三次查询,合并结果集应该可以吧
相似回答
大家正在搜