0

Essentially, with reference to the table, I want to exclude all matching IDs in this case C123 because it has at least one of the UsedResources = 0.

Any help or advice would be very appreciated here.

PersonalID ID_Holder AssigmentTags UsedResources
C123 Kratos AS001 0
C123 Kratos AS999 15
C123 Kratos AS542 20
P567 Zesus AS874 25
P567 Zesus AS123 10
P567 Zesus AS983 5
Stefan Stoichev
  • 4,615
  • 3
  • 31
  • 51

1 Answers1

0

Script

You can flag these records and the use the flag to filter them out in the UI

RawData:
Load * Inline [
PersonalID, ID_Holder, AssigmentTags, UsedResources
C123      , Kratos   , AS001        , 0
C123      , Kratos   , AS999        , 15
C123      , Kratos   , AS542        , 20
P567      , Zesus    , AS874        , 25
P567      , Zesus    , AS123        , 10
P567      , Zesus    , AS983        , 5
];

join

Load
  PersonalID,
  if(MinUsedResources > 0, 1, 0) as HasNonZeroResources
;  
Load
distinct
  PersonalID,
  min(UsedResources) as MinUsedResources
Resident
  RawData
Group By
    PersonalID
;

Once the app is reloaded then HasNonZeroResources field can be used in the expressions:

With Set analysis:

count( {< HasNonZeroResources = {1} >} AssigmentTags)

Without Set analysis:

// not sure how effective is this
count( AssigmentTags ) * HasNonZeroResources

Expression

One way is to only include PersonalID for which the minimum value for UsedResources is

count( {< PersonalID = {"=min(UsedResources) > 0"} >}  AssigmentTags)
Stefan Stoichev
  • 4,615
  • 3
  • 31
  • 51