oracle,sql语句同一表中同一字段不同条件count(*)

1 a
2 b
3 c
4 a
5 c
6 a
结果
a 3
b 1
c 2
请问该怎么写语句?
a,b,c 为 xxx like '%xxx%'

典型的case when 语句块可以解决.先映射表的视图,添加条件过滤
例如性别为M的和为F的分别计数name,可以写成:
select b1.sex, count(b1.name)
from ((select bh.*,
(case when sex= 'M' then 1 else 0 end) as qty /*此处可写多个when*/
from user_d bh) b1)
group by b1.sex
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-18
楼主 这个问题很简单嘛 就是分组即可

假如第一列字段是col1 第二列的字段是col2
select col2,count(1) col1 from tbname
group by col2追问

select count(*) from tbname where kprq <to_date('2013-09-04','yyyy-mm-dd') and abc like '%21581%';
abc 这个字段是一串数字,21581xxx,21582xxx,.........21589
我以前查的时候每次都换%数字%,
21581 数量
。。。 数量
21589 数量
请问怎么实现

追答

如果是这样的话 只有分开写

用union all 联合

追问

不会写啊。帮我写一下吧,谢谢

本回答被网友采纳
第2个回答  2013-09-19
select substr(abc,1,5),count(*)
from tbname
where kprq <to_date('2013-09-04','yyyy-mm-dd')
group by substr(abc,1,5)本回答被网友采纳
第3个回答  2013-09-18
select 1,count(*)
from 表名
group by 1