欢迎光临
我们一直在努力

一个有趣的SQL问题。-数据库专栏,SQL Server

建站超值云服务器,限时71元/月

有朋友近来要我帮忙解决一个问题,问题描述:

有表,表有3个字段:f1,f2,f3,其中,每个字段中都可能出现1~9之间的9个数字,现要统计出整个表中1~9各出现的次数。

如:

f1

f2

f3

1

1

2

1

2

3

2

1

2

 

在上例中:”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

               union all

               select a3 from test

)

group by a1

 
我是故意将字体颜色设置为白色,是为避免干扰您的思维,如果你想看,可用鼠标拖动,选择上面那块空白区域,将内容粘贴到写字板或查询分析器中即可。该sql在sqlserver2000下调试通过。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 一个有趣的SQL问题。-数据库专栏,SQL Server
分享到: 更多 (0)