sql - 通过使用每个实例的共现创建列
问题描述
交易号 | UPC_CODE | 已购买_UNIT | COPURCHASED_FREQUENCY |
---|---|---|---|
T123456 | 1040-1204-8612 | 2 | 2 |
T123456 | 4020-4104-2120 | 1 | 0 |
T123456 | 1040-1204-8612 | 3 | 2 |
T123456 | 2994-8182-9311 | 5 | 0 |
T191201 | 9879-8712-3456 | 2 | 2 |
T191201 | 2387-1928-1247 | 1 | 0 |
T191201 | 7417-2741-4245 | 4 | 0 |
T191201 | 9879-8712-3456 | 2 | 2 |
[另请参考假设表格的截图示例]
请参考上图:
假设数据包含诸如“TRANSACTION_NUMBER”(表示每笔交易的唯一实例)、“UPC_CODE”(表示唯一产品标识符信息)和“PURCHASED_UNIT”(表示特定产品被购买的次数)等信息。
我的目标是生成一个名为"COPURCHASED_FREQUENCY"的列。此列应包含有关在“交易编号”列指示的同一交易实例中共同购买 UPC 对的次数的信息。
棘手的是我们不能在 R 和 Python 上执行这个操作。相反,此列应由 SQL 操作创建。
我认为我要创建的是类似于共现实例的东西。到目前为止,我想不出一种特定的方法来做到这一点,我将感谢您的帮助!如果你能在这方面提供帮助,那就太好了!
解决方案
这可以通过使用窗口函数来实现,如果你想为那些没有买过更多的人显示 0,你可以使用 case 语句:
select *
, count(*) over (partition by TRANSACTION_NUMBER,UPC_CODE) as COPURCHASED_FREQUENCY
from youratble
推荐阅读
- multithreading - Delphi在匿名线程中调用函数?
- python-3.x - 如何在 Stack Overflow 上抓取每个问题的“内容”和“链接”?
- haskell - 带有`par`和`pseq`的Haskell并行映射
- angular - 从 Angular 表单中收集大量数据
- android - 从移动应用程序中的经度和纬度获取多边形
- ruby-on-rails - Rails 5 应用程序不会从 assets/javascripts 文件夹加载 JS
- c# - 修复 web api 方法不正确的行为
- javascript - 如何用不同的随机数填充矩阵数组
- php - 从 PHP 执行长 Python 脚本
- ionic-framework - Ionic4 模型动作控制器