brand

问题描述 投票:0回答:1

我有一个表格,其中有列 branduid. 当某一用户与某一品牌进行交易时,它就会捕捉到相关信息。该表的样本如下

+-------+-----+
| brand | uid |
+-------+-----+
| A     | 111 |
| B     | 111 |
| C     | 111 |
| A     | 112 |
| B     | 112 |
| D     | 112 |
| A     | 114 |
| B     | 114 |
| C     | 114 |
| B     | 115 |
| C     | 115 |
| A     | 116 |
| D     | 116 |
+-------+-----+

我想知道两个品牌之间共同的用户数。例如,如果一个用户使用品牌A进行交易,那么有多少用户使用品牌B进行交易,以此类推(所有可能的组合)。

所需输出如下

+--------+--------+------------+
| brand1 | brand2 | count_user |
+--------+--------+------------+
| A      | A      |          4 |
| A      | B      |          3 |
| A      | C      |          2 |
| A      | D      |          2 |
| B      | A      |          3 |
| B      | B      |          4 |
| B      | C      |          3 |
| B      | D      |          1 |
| C      | A      |          2 |
| C      | B      |          3 |
| C      | C      |          3 |
| C      | D      |          0 |
| D      | A      |          2 |
| D      | B      |          1 |
| D      | C      |          0 |
| D      | D      |          2 |
+--------+--------+------------+

输出结果应读作如下

  1. 有4位用户与品牌A进行了交易(第1行)。
  2. 有3位用户与品牌A、B进行过交易(第2行)。
  3. 有2位用户与品牌A和c进行了交易(第3行)。

等等......。

sql hive hiveql
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.