InterSystemsCaché:如何计算表中列表中值的遭遇? [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InterSystemsCaché:如何计算表中列表中值的遭遇? [关闭]相关的知识,希望对你有一定的参考价值。
我对Caché很新,并被要求计算表中列表中值的遭遇。例如,表格如下所示:
id | values
-------------------
1 | {1, 2}
2 | {1, 3, 4, 4, 5}
3 | {1, 2, 5}
4 | {1, 2, 2, 4, 5}
5 | {2, 1, 4}
类定义
Class Object.Test Extends %Persistent
{
Property values As list of %Integer
}
该表的输出必须如下所示:
value | count
--------------
1 | 5
2 | 5
3 | 1
4 | 4
5 | 3
但我不知道如何做到这一点
编辑添加了类定义
答案
假设您没有需要保存的数据。
- Project列出属性作为单独的表
Class Object.Test Extends %Persistent { Property values As list of %Integer(STORAGEDEFAULT="array", SQLPROJECTION = "table/column"); }
- 删除数据,存储定义并重新编译该类。
- 生成数据。
- 执行SQL查询
SELECT "values", count(*) AS "count" FROM Object.Test_values GROUP BY "values"
- (可选)添加并构建collection索引。
笔记。
这是SQL的方式。你也可以这样做:
- 对象方式(迭代对象及其属性)
- 全局方式(迭代全局和此属性值)
以上是关于InterSystemsCaché:如何计算表中列表中值的遭遇? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
针对 InterSystems Caché 中 DeepSee MDX 查询的 JSON 数据
如何将一个表中列的每个不同值映射到 Hive 中另一个表中列的每个不同值