有朋友近来要我帮忙解决一个问题,问题描述:
有表,表有3个字段:f1,f2,f3,其中,每个字段中都可能出现1~9之间的9个数字,现要统计出整个表中1~9各出现的次数。
如:
F1
F2
F3
1
2
3
在上例中:”1”出现了4次,”2”出现了4次,”3”出现了1次。
当然,这个问题是要求尽可能的用SQL语句来搞定。因为如果用程序,用变量、数组之类,好象就没有提出这个问题的必要。当俺花了几分钟的心思,OVER之后,感觉到用SQL来考虑这个问题,好象就有了点意思,怎样用最简单明了的思路和方法将这个问题搞定?在此将这个问题和大家分享,希望能让大家工作、忙碌之余,换换心境,能换来一点小小的乐趣。
在此将我的解决方法公布如下:
SELECT A1, COUNT(A1) AS Expr1
FROM (SELECT A1 FROM TEST
UNION ALL
SELECT A2 FROM TEST
SELECT A3 FROM TEST
)
GROUP BY A1
[1] [2] 下一页
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18