2015-07-05 85 views
1

我试图计算表中多个列的发生次数。所有值都是整数,所有数字在每一行中都是唯一的。 (即你不会得到发生在同一行中的两个值)的表结构是:计算跨多列的发生次数

ID Number1 Number2 Number3 Number4 Number5 Number6 
--------------------------------------------------------- 
    11  6  4  5  9  8 
    6  9  11  5  3  15 
    8  5  9  11  4  6 
    4  11  17  3  7  1 

的预期结果会是这样的:

Number Count 
-------------- 
11  4 
6  3 
4  3 
5  3 
9  3 
3  2 
8  2 
15  1 
17  1 
7  1 
1  1 

我用枢轴和各种尝试在互联网上找到的其他方法,但似乎无法使其正常工作。任何想法,这似乎是一个简单的查询,但我不能正确的。

回答

2

如果只有6列,那么一个办法可以做到这一点

select Number, count(*) From (select Number1 as Number from your_table 
union all 
select Number2 as Number from your_table 
union all 
select Number3 as Number from your_table 
union all 
select Number4 as Number from your_table 
union all 
select Number5 as Number from your_table 
union all 
select Number6 as Number from your_table) myTab 
group by Number;