Sql InterSystems Caché:如何计算表中列表中的值的遭遇?
我对Caché很陌生,被要求计算表中列表中值的遭遇次数。例如,表如下所示:Sql InterSystems Caché:如何计算表中列表中的值的遭遇?,sql,collections,count,intersystems-cache,Sql,Collections,Count,Intersystems Cache,我对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} value | count -------------- 1 | 5 2 | 5 3 | 1 4 | 4 5 | 3 类定义 C
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}
value | count
--------------
1 | 5
2 | 5
3 | 1
4 | 4
5 | 3
类定义
Class Object.Test Extends %Persistent
{
Property values As list of %Integer
}
该表的输出必须如下所示:
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}
value | count
--------------
1 | 5
2 | 5
3 | 1
4 | 4
5 | 3
但我不知道怎么做
如果没有需要保存的数据,请编辑添加的类定义 将属性列为单独的表 类对象。测试扩展%Persistent { 属性值为%IntegerSTORAGEDEFAULT=array,SQLPROJECTION=table/column的列表; } 删除数据、存储定义并重新编译类 生成数据 执行SQL查询 挑选 值,count*作为count 从Object.Test_值 按值分组 可选的添加和生成索引 注释 这就是SQL方式。您也可以这样做: 对象在对象及其属性上的迭代方式 全局方式迭代全局和此属性值
.假设您没有需要保存的数据 将属性列为单独的表 类对象。测试扩展%Persistent { 属性值为%IntegerSTORAGEDEFAULT=array,SQLPROJECTION=table/column的列表; } 删除数据、存储定义并重新编译类 生成数据 执行SQL查询 挑选 值,count*作为count 从Object.Test_值 按值分组 可选的添加和生成索引 注释 这就是SQL方式。您也可以这样做: 对象在对象及其属性上的迭代方式 全局方式迭代全局和此属性值
.欢迎来到StackOverflow。请熟悉一下。没有人会为你做你的工作。显示一些代码,它显示了您到目前为止尝试的内容。@Konafets,如果我有东西要显示,我会显示,但我只能在列中没有集合时显示简单的计数。我基本上只知道如何在Caché中使用对象,所以这就是为什么我要问-我没有任何想法如何做到这一点如果你想为这个表添加类定义,它可能比这个抽象表更有用。欢迎使用StackOverflow。请熟悉一下。没有人会为你做你的工作。显示一些代码,它显示了您到目前为止尝试的内容。@Konafets,如果我有东西要显示,我会显示,但我只能在列中没有集合时显示简单的计数。我基本上只知道如何在Caché中使用对象,所以这就是为什么我要问-我没有任何想法如何做到这一点如果你想为这个表添加类定义,它可能比这个抽象表更有用。工作起来很有魅力!谢谢你做了这么多的工作!非常感谢你