使用 SQL table 中的项目计数

Item count in a table using SQL

我想统计table中所有项目出现的频率。我的起始 table 是这样的:

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

我想得到以下结果:

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

我认为最简单的方法是将所有列附加在一起以创建一个列。这样我就可以应用 COUNT 和 GROUP BY 操作。问题是,如何将多列附加到一列中。 我需要这个来在 Vertica 数据库中的 table 上实现 Apriori 算法。这是获取项目计数的第一步。 感谢您的帮助。

逆透视数据并进行计数

试试这个方法

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