How to create a custom dimension on even/odd numbers

  • 16 November 2018
  • 5 replies


This is a typical Friday afternoon idea. I am trying to do a “random” segmentation on user id to create two groups and I would like to have all even user id’s in group 1 and the odd user id’s in group 2. Does anyone have a smart solution to do this? 🙂

Have a nice weekend.



5 replies

Userlevel 3

Depending on your SQL dialect, searching on the end of a string can be slow. If your user ID is an integer, it may be faster to use ${user_id} % 2 where % is the modulo operator (it may be mod(${user_id},2) in your dialect. Try it my way and yours and see which is faster! (But note that my way will yield 0 and 1 whereas yours yields 2 and 1.)

Yes, of course. I need it for a test, so I am sure there is a better solution, but for now I just created a new dimension base on the user_id dimension.

dimension: user_id_segmentation {

type: number

sql: CASE WHEN ${user_id} LIKE ‘%1’ OR

${user_id} LIKE ‘%3’ OR

${user_id} LIKE ‘%5’ OR

${user_id} LIKE ‘%7’ OR

${user_id} LIKE ‘%9’ THEN ‘1’ ELSE ‘2’ END;;


Userlevel 7
Badge +1

@luclafleur Want to make the most of the post and share your solution with the rest of us!? 🙂

I just posted this and then realized the solution. Apparently I cannot delete this post, so please just ignore.

Interesting, I am indeed noticing small improvements in performance. The 0 and 1 vs 1 and 2 does not matter. I only used 1 and 2 as a personal reference to odd and even. Thanks!