2016-12-07 28 views
1

我想统计表中所有项目的频率。我的出发表是这样的:使用SQL的表中的项目数

+------+------+ 
| Col1 | Col2 | 
+------+------+ 
| A | Z | 
| B | Y | 
| A | Y | 
+------+------+ 

而且我希望得到以下结果:

+------+-------+ 
| Item | Count | 
+------+-------+ 
| A |  2 | 
| B |  1 | 
| Y |  2 | 
| Z |  1 | 
+------+-------+ 

我在想,最简单的方法是将所有列追加共同创造一个单一的柱。用这个我可以应用COUNT和GROUP BY操作。问题是,如何将多列添加到一列中。 我需要这个在我的Vertica数据库的表上实现Apriori算法。这是获取项目数量的第一步。 感谢您的帮助。

回答

1

逆透视的数据,并做计数

尝试这种方式

select Item,count(1) 
From 
(
select col1 as Item from yourtable 
union all 
select col2 from yourtable 
) A 
Group by item 
+0

感谢您的快速帮助!我知道有一个简单的方法,但我想愚蠢地使用谷歌正确的方式。 – valenzio

相关问题