如何计算 apex 5 中单独记录的 table 中字符串的唯一出现次数

How to count unique occurences of string in table for separate records in apex 5

我正在尝试自动计算 table 中保存的字符串的唯一出现次数。目前我有一个字符串的计数,但只有当用户 selects 字符串并且它为每条记录提供相同的计数值时。

例如

下面是我现在的照片 table:

从图像中可以看到有一个 Requirement 列和一个 count 列。我已经明白了,当用户 select 一个需求记录(每个需求记录都有一个 link)时,它会将需求文本插入到一个名为 'P33_REQUIREMENT' 的需求项中,所以count 可以有一个值来比较。

这是我目前拥有的SQL:

SELECT (SELECT COUNT(*) 
        FROM DIA_ASSOCIATED_QMS_DOCUMENTS 
        WHERE REQUIREMENT = :P33_REQUIREMENT 
        group by REQUIREMENT 
       ) AS COUNT, 
       DPD.DIA_SELECTED, 
       DPD.Q_NUMBER_SELECTED, 
       DPD.SECTION_SELECTED, 
       DPD.ASSIGNED_TO_PERSON, 
       DAQD.REFERENCE, 
       DAQD.REQUIREMENT, 
       DAQD.PROGRESS, 
       DAQD.ACTION_DUE_DATE, 
       DAQD.COMPLETION_DATE, 
       DAQD.DIA_REF,  
       DA.DIA, 
       DA.ORG_RISK_SCORE 
FROM DIA_PROPOSED_DETAIL DPD, 
     DIA_ASSOCIATED_QMS_DOCUMENTS DAQD,   
     DIA_ASSESSMENTS DA
WHERE DPD.DIA_SELECTED = DAQD.DIA_REF 
  AND DPD.DIA_SELECTED = DA.DIA

这是sql用来制作图片中的table。

这个问题是,当用户 select 是一个要求值时,它给每条记录相同的计数。我可以通过在计数的 where 子句中添加 AND DIA_SELECTED = :P33_DIA 来解决这个问题。 DIA_SELECTED 是 table 中的第一列,而 :P33_DIA 是存储与所选记录相关的 DIA 参考编号的项目。

输出如下:

如您所见,只有一个计数。仍然不能解决整个问题,但会好一点。

所以综上所述,有没有一种方法可以进行计数,分别计算出现的次数并将它们插入到相同的需求中。因此,如果像图像中那样有三个测试,则在 requirement = 'test' 的计数列中会有一个“3”,如果有一个带有 'test the system' 的记录,则会有一个“1”计数列。

此外,对于更多上下文,我不知道用户将输入什么内容,因此我无法与预先确定的字符串进行比较。

我是堆栈溢出的新手,希望我已经解释得足够多了,不会太混乱。

以下摘录:

SELECT (SELECT COUNT(*) 
        FROM DIA_ASSOCIATED_QMS_DOCUMENTS 
        WHERE REQUIREMENT = :P33_REQUIREMENT group by REQUIREMENT ) AS COUNT

可以替换为

SELECT (SELECT COUNT(*) 
        FROM DIA_ASSOCIATED_QMS_DOCUMENTS 
        WHERE REQUIREMENT = DAQD.REQUIREMENT ) AS COUNT

这将为您提供 - 对于每一行,相同要求的数量。 我不完全确定这是你所追求的,但如果不是,它应该会给你一些关于如何进步的想法(或者允许你指出我未能理解你的要求的地方)