partitioning - Alteryx 选择前 N 条记录,其中 N=该组的值
问题描述
我正在修复 Alteryx。我正在尝试选择前 N 行,其中 N=该分区的单元格值。业务问题是:
“我们需要知道,在我们的订单 (TicketIDs) 中,那些至少有 1 种折扣商品类型和饮料和面的组合。”
SQL 查询会将这个表连接到自身并分区以获取该TopNtoIncludeInItems
行,但是,我似乎无法在 Alteryx 中找到执行此操作的方法。我已经尝试过社区,但问题已经得到解答。
换句话说,这样选择:
<pseudocode>
for each (TicketID)
for each(Type)
select top(TopNtoIncludeInItems for this.TicketID)
next
next
</pseudocode>
或者确实只选择绿色记录
解决方案
这是我的解决方案:
- MultiRow 公式:创建新字段
ComboCount
(或其他)为 Int32,0 或为不存在的行为空,按 TicketID 和类型分组,使用表达式[Row-1:ComboCount]+1
......这对每个组进行计数;我们需要每个组的第一个topN,确保该组实际上有那么多,并且不超过TopN。 - 过滤
[ComboCount] <= [TopN]
... 排除TopN之外不必要的行 - 总结:按 TicketID 和 Type 分组,做 Max(ComboCount) ...如果此值小于任何组的TopN,则应排除该组:
- 将摘要加入到之前关于 TicketID 和类型的预摘要数据
- Filter on
[Max_ComboCount] = [TopN]
... 这会排除任何 ItemType 未达到TopN的组
推荐阅读
- php - Google 登录 oauth2 403 错误,disallowed_useragent
- google-cloud-platform - 优化繁重的 BigQuery DELETE 查询
- css - ReactJS 模态窗口中的淡入和缩放效果
- python - 试图在python中创建一个递归置换函数
- python - 如何在 python 中获取用户输入并在文本文件中生成带有其他文本值的输入?
- java - 在 Java 代码的过程调用中出现错误
- javascript - 你什么时候在 TypeScript 中使用声明?
- regex - 仅匹配不包含数字 + % 的括号
- javascript - 在输入输入时更改焦点颜色
- php - 在 Laravel 中保存数据时如何禁用 updated_at 和 created_at