如一个表A如下:a表示主键(唯一)
a b c
# 一 三
@ 一 三
¥ 一 二
% 二 二
要统计 b c两个字段的个数
统计结果应该是这样b和c依次如下
个数 b
3 一
1 二
个数 c
2 三
2 二
以上的结果要一起显示出来 并且以两个字段的相同部分总和排序
字段不是整型的哦 都是varchar类型的啊
一种查询SQL如下, 利用union获得b和c各自的统计结果, 然后再一次统计整合到最终结果:
select sum(d.b_cnt) + sum(d.c_cnt) as total_cnt, sum(d.b_cnt) as b_cnt, case when sum(d.b_cnt) = 0 then '' else d.val end as b_label, sum(d.c_cnt) as c_cnt, case when sum(d.c_cnt) = 0 then '' else d.val end as c_labelSQL Serer上的测试结果(栏位次序有变化),
total_cnt为总数, b_label为b栏值, b_cnt为b栏个数, c_labe为c栏值, c_cnt为c栏个数.
这个结果跟字段是否为整型无关, 它是统计记录出现的次数.
追问如果不是int类型的了 要是都是varchar类型的呢 这样就用不了sum了啊
追答这个结果跟字段是否为整型无关, 它是统计记录出现的次数.
我测试用的数据都是字符串类型的, 只是最终的结果中次数值为整数值.
如果不是int类型的了 要是都是varchar类型的呢 这样就用不了sum了啊
追答cast(个数 as int),用cast做转换,然后就可以计算了
追问你答的也不错 重新给你个连接随便答下 让我采为满意答案吧http://zhidao.baidu.com/question/1540860129642282827.html