使用 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
我想统计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