Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
beck_bakytbek
Master
Master

compare columns within a table

Hi Folks,

i got a following Situation, my data does look like:

type_of_action, comp1, comp2, comp3, comp4

action1,                   x          x          x          x

action2                    x          x                      x

action3                    x                    x

action4                    x                                   x

my expected Output is to create the additional column with the feature like this

type_of_action, comp1, comp2, comp3, comp4    Control

action1,                   x          x          x          x                4

action2                    x          x                      x                3

action3                    x                    x                              2

action4                    x                                   x               2

does anybody have any ideas, how to resolve this issue?

Thanks a lot

Beck

1 Solution

Accepted Solutions
petter
Partner - Champion III
Partner - Champion III

You can use the CROSSTABLE prefix of the LOAD statement to unpivot your data to create a dimension that tracks the "comp". Then you could use the Pivot Table or the Table in the UI to calculate the Control as a normal aggregation.

This would be a better data model for BI and analytics purposes.

CrossTable( comp , value ) LOAD

  type_of_action,

  comp1 AS [1],

  comp2 AS [2],

  comp3 AS [3],

  comp4 AS [4]

FROM

   ..... ;

In av Pivot Table you would use type_of_action and comp as dimensions and put the comp as a column not as a row. Finally you would create this expression as a measure:

Count( value )

In av regular/straight table you would have to add the type_of_action as a dimension but add the comp for each type manually as expressions like this:

=Count( {<comp={1}>} comp )

=Count( {<comp={2}>} comp )

=Count( {<comp={3}>} comp )

=Count( {<comp={4}>} comp )

And then finally:

=Count( comp )

for the Control

View solution in original post

4 Replies
petter
Partner - Champion III
Partner - Champion III

You simply have this expression as a measure you can label Control in a table that has type_of_action as a dimension and the comp1 to comp4 as separate measures:

=Count(comp1)+Count(comp2)+Count(comp3)+Count(comp4)

beck_bakytbek
Master
Master
Author

Hi Peter,

first of all, thanks a lot for your Feedback, at the beginning i solved this ussue by using of this Expression (like your suggestion), but then i thought, can i create from such Expression a Dimension (like 4, 3 , 2 ,1). Do you have any idea, how to create the columns or Dimension ( like 4 ,3, 2, 1) ?

petter
Partner - Champion III
Partner - Champion III

You can use the CROSSTABLE prefix of the LOAD statement to unpivot your data to create a dimension that tracks the "comp". Then you could use the Pivot Table or the Table in the UI to calculate the Control as a normal aggregation.

This would be a better data model for BI and analytics purposes.

CrossTable( comp , value ) LOAD

  type_of_action,

  comp1 AS [1],

  comp2 AS [2],

  comp3 AS [3],

  comp4 AS [4]

FROM

   ..... ;

In av Pivot Table you would use type_of_action and comp as dimensions and put the comp as a column not as a row. Finally you would create this expression as a measure:

Count( value )

In av regular/straight table you would have to add the type_of_action as a dimension but add the comp for each type manually as expressions like this:

=Count( {<comp={1}>} comp )

=Count( {<comp={2}>} comp )

=Count( {<comp={3}>} comp )

=Count( {<comp={4}>} comp )

And then finally:

=Count( comp )

for the Control

beck_bakytbek
Master
Master
Author

Hi Peter,

thanks a lot for your time and help, it does work great

Have a nice day