kdb - 每月 KDB/Q 查询匹配条件的行
问题描述
我想在 Q/KDB 中执行一个查询来检索满足以下条件的行。
- 一个月内同名的行只能完成标记。
- 名称应该是不同的,即如果它们满足条件 1,它们应该只显示为单数条目。
初始表:
completed name month
--------------------
yes x 1
no x 1
yes y 2
yes y 2
no a 3
yes a 4
yes b 4
no b 4
no b 4
yes y 5
按月份划分的初始表
completed name month
--------------------
yes x 1
no x 1
---------------------
yes y 2
yes y 2
--------------------
no a 3
--------------------
yes a 4
yes b 4
no b 4
no b 4
--------------------
yes y 5
结果表:
completed name month
--------------------
yes y 2
yes a 4
yes y 5
解释:
在第1个月,只有x进行了交易,但还没有完成一笔交易,因此它不在我们的决赛桌中。
在第2个月,只有y完成了两笔交易,因此它在我们的决赛桌中。
在第3个月,只有一笔交易但交易尚未完成。
在第4个月,a和b都进行了交易,但由于b有未完成的交易,所以它被排除在外。
在第5个月,只有y交易,所以它被添加到决赛桌。
解决方案
嗨 Carrein,您可以使用每个正确的副词和 fby 过滤器来使用以下内容
distinct select from tab where ({all`yes=/:x};completed)fby([]name;month)
此外,为简单起见,您可能希望对已完成的列使用布尔向量
推荐阅读
- javascript - 从 React 到 .NET Core Web API 进行 POST 时如何修复 CORS 错误?
- node.js - 使用护照从节点中的 jsonwebtoken 获取用户 ID
- r - upload_file(x) 中的错误:is.character(path) 在循环中不是 TRUE
- android - 我怎样才能收到我检查的数据
- postgresql - 使用 VARIADIC 数组作为参数的 PL/Python3
- python - 逻辑回归是创建评分模型的更好方法吗?
- tensorflow - AttributeError:“KerasTPUModel”对象没有属性“_run_eagerly”
- domain-driven-design - 如何在 DDD 聚合建模中表示枚举
- html - 将 html 表格单元格数值格式化为 Excel 的文本
- instagram - 是否有用于查找 Instagram 个人资料类型(商业/个人)的 Instagram API/Graph API?