distinct count of concat (column) , row_number over partition by (column) - Why isn't this working?

Good morning

 

I'm curious if anyone has any insight into why this beastmode doesn't work, because if I could get this to work, it would solve a lot of work for me.

 

The beastmode that doesn't work for me is:  COUNT(DISTINCT ( CONCAT(`hs_rpt_drivemaster.driveid`,'',row_number() over (partition by `hs_rpt_drivemaster.driveid`))))

 

It works up to the point that I add the count distinct function in

 Meaning this works fine: row_number() over (partition by `hs_rpt_drivemaster.driveid`)

And this works fine: CONCAT(`hs_rpt_drivemaster.driveid`,'',row_number() over (partition by `hs_rpt_drivemaster.driveid`))

 

But once I try to count this Distinct Concat count, I get the dreaded "An issue has occurred during processing.  We are unable to complete this request"

 

The reason I am trying to do a row number partitioned by "DriveID" is that DriveID's can have a 1st shift and a 2nd shift, creating 2 rows.  However, we have no unique identifier of 2nd shifts, and not all drives have 2nd shifts.  I am wanting a distinct count of shifts, not drives.   So I was trying to do distinct count of concat ([driveA],[rownumber])

 

I have attached a snapshot of an example spreadsheet for a visual

 

 

 

Best Answer

  • GrantSmith
    GrantSmith Indiana 🔴
    Accepted Answer

    Hi @HashBrowns 

     

    Domo doesn't like it when you try and take an aggregate (count) of another aggregate (row_number). There's some caveats to this with window functions but how you're utilizing this is why.

     

     

    What I'd recommend you do is create a new Magic ETL (or a Dataset View if you have the beta) to perform your windowing (Rank & Window tile in ETL 2.0) to calculate your unique ID (row number then combine the fields together in another tile) then use that new column & dataset in your card to perform your count distinct.