【发布时间】:2021-10-30 06:57:19
【问题描述】:
我有一张表格,其中包含有关客户的信息以及他们购买每种食物的金额。我想创建新的列,这是他们购买的最常见的食物类型。有没有有效的方法来做到这一点?
我尝试使用 case when 并进行一对一的比较,但它变得非常乏味。
样本数据:
| Cust_ID | apple_type1 | apple_type2 | apple_type3 | apple_type4 | apple_type5 | apple_type6 |
|---|---|---|---|---|---|---|
| 1 | 2 | 0 | 0 | 3 | 6 | 1 |
| 2 | 0 | 0 | 0 | 1 | 0 | 1 |
| 3 | 4 | 2 | 1 | 1 | 0 | 1 |
| 4 | 5 | 5 | 5 | 0 | 0 | 0 |
| 5 | 0 | 0 | 0 | 0 | 0 | 0 |
--想要
| Cust_ID | freq_apple_type_buy |
|---|---|
| 1 | type5 |
| 2 | type4 and type6 |
| 3 | type1 |
| 4 | type1 and type2 and type3 |
| 5 | unknown |
【问题讨论】:
-
天啊,非常感谢!你编辑了什么使这个看起来正确?
-
您是否能够/愿意更改您的源数据模型?如果您对这些数据进行了标准化(三列;cust_id、apple_type、数量),那么这将是微不足道的。
-
使表格正确呈现的编辑是在每个表格之前有一个空行。
-
所以,如果我的原始数据中有 3 列(三列;cust_id、apple_type、数量),要获得最频繁的苹果类型购买,我可以这样做:选择 cust_id、apply_type、max (数量)来自 xxx 组的 cust_id、apply_type?如果有多个类型的购买金额相同,我想对其进行分类怎么办?
标签: sql google-bigquery