expression filter - syntax question

Discuss how to create custom stats, reports and HUD profiles and share your creations.

Moderators: WhiteRider, kraada, Flag_Hippo, morny, Moderators

expression filter - syntax question

Postby ommaha » Fri May 25, 2018 7:12 pm

I want to filter for a bunch of omaha starting hands in the reports. What is the syntax for #Hole Cards# in the expression filter?

#Hole Cards#='7s7d6d5s' is not valid

And how many hands can I filter in the expression filter? Is it more than in the hand value filter (~3325 starting hands are ok there)?

tyvm
ommaha
 
Posts: 218
Joined: Sun Jul 29, 2012 8:46 am

Re: expression filter - syntax question

Postby Flag_Hippo » Sat May 26, 2018 1:35 pm

I am not aware of any maximum but if you are using #Hole Cards# then you need to use the hole card lookup values e.g. #Hole Cards# = 1702 although this will not give you specific suits. If you want to filter for specific suits you can enter those via the hand values filter.
Flag_Hippo
Moderator
 
Posts: 14516
Joined: Tue Jan 31, 2012 7:50 am

Re: expression filter - syntax question

Postby ommaha » Sun May 27, 2018 10:22 am

tyvm.

what I want to do is to use loads of hands from a solvers range as a filter in order to see which hands I played (in)correctly. the solvers ranges consist of specific hands like 7s7d6c4s, As9s7c4d, Ks9d8d7s, ... that I want to use as as filter.
I only have them in this format. I put the ranges in chunks of 3325 hands in the hand value filter (1.23% of all hands seem to be the max). I did that 8 times to get a 9% range in and it worked well as a filter.
But it is tedious work and I wondered whether there is a possibility to speed up the process by using the expression filter. Is there another way?
ommaha
 
Posts: 218
Joined: Sun Jul 29, 2012 8:46 am

Re: expression filter - syntax question

Postby Flag_Hippo » Sun May 27, 2018 2:39 pm

Other than plugging the hands in the hand range filter there isn't a more straightforward method I can suggest. Expression filters are long since there are 24 possible ways you can be dealt 7s7d6c4s which each have to be tested for (the hand range filter does this for you automatically):

Code: Select all
(((((SELECT CASE WHEN (cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_2 AND cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_3 AND cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_4) THEN CASE    WHEN (cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_3 AND cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_4 ) THEN CASE    WHEN(cash_hand_player_statistics.holecard_3 < cash_hand_player_statistics.holecard_4) THEN      (cash_hand_player_statistics.holecard_1-1)*140608+(cash_hand_player_statistics.holecard_2-1)*2704+(cash_hand_player_statistics.holecard_3-1)*52+(cash_hand_player_statistics.holecard_4-1)     ELSE (cash_hand_player_statistics.holecard_1-1)*140608+(cash_hand_player_statistics.holecard_2-1)*2704+(cash_hand_player_statistics.holecard_4-1)*52+(cash_hand_player_statistics.holecard_3-1) END    WHEN (cash_hand_player_statistics.holecard_3 < cash_hand_player_statistics.holecard_2 AND cash_hand_player_statistics.holecard_3 < cash_hand_player_statistics.holecard_4 ) THEN CASE     WHEN(cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_4) THEN     (cash_hand_player_statistics.holecard_1-1)*140608+(cash_hand_player_statistics.holecard_3-1)*2704+(cash_hand_player_statistics.holecard_2-1)*52+(cash_hand_player_statistics.holecard_4-1)     ELSE (cash_hand_player_statistics.holecard_1-1)*140608+(cash_hand_player_statistics.holecard_3-1)*2704+(cash_hand_player_statistics.holecard_4-1)*52+(cash_hand_player_statistics.holecard_2-1)  END   ELSE CASE     WHEN(cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_3) THEN     (cash_hand_player_statistics.holecard_1-1)*140608+(cash_hand_player_statistics.holecard_4-1)*2704+(cash_hand_player_statistics.holecard_2-1)*52+(cash_hand_player_statistics.holecard_3-1)     ELSE (cash_hand_player_statistics.holecard_1-1)*140608+(cash_hand_player_statistics.holecard_4-1)*2704+(cash_hand_player_statistics.holecard_3-1)*52+(cash_hand_player_statistics.holecard_2-1) END  END  WHEN (cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_1 AND cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_3 AND cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_4) THEN CASE    WHEN (cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_3 AND cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_4 ) THEN CASE     WHEN(cash_hand_player_statistics.holecard_3 < cash_hand_player_statistics.holecard_4) THEN     (cash_hand_player_statistics.holecard_2-1)*140608+(cash_hand_player_statistics.holecard_1-1)*2704+(cash_hand_player_statistics.holecard_3-1)*52+(cash_hand_player_statistics.holecard_4-1)     ELSE (cash_hand_player_statistics.holecard_2-1)*140608+(cash_hand_player_statistics.holecard_1-1)*2704+(cash_hand_player_statistics.holecard_4-1)*52+(cash_hand_player_statistics.holecard_3-1) END   WHEN (cash_hand_player_statistics.holecard_3 < cash_hand_player_statistics.holecard_1 AND cash_hand_player_statistics.holecard_3 < cash_hand_player_statistics.holecard_4 ) THEN CASE    WHEN(cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_4) THEN     (cash_hand_player_statistics.holecard_2-1)*140608+(cash_hand_player_statistics.holecard_3-1)*2704+(cash_hand_player_statistics.holecard_1-1)*52+(cash_hand_player_statistics.holecard_4-1)     ELSE (cash_hand_player_statistics.holecard_2-1)*140608+(cash_hand_player_statistics.holecard_3-1)*2704+(cash_hand_player_statistics.holecard_4-1)*52+(cash_hand_player_statistics.holecard_1-1)  END   ELSE CASE     WHEN(cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_3) THEN     (cash_hand_player_statistics.holecard_2-1)*140608+(cash_hand_player_statistics.holecard_4-1)*2704+(cash_hand_player_statistics.holecard_1-1)*52+(cash_hand_player_statistics.holecard_3-1)    ELSE (cash_hand_player_statistics.holecard_2-1)*140608+(cash_hand_player_statistics.holecard_4-1)*2704+(cash_hand_player_statistics.holecard_3-1)*52+(cash_hand_player_statistics.holecard_1-1)  END  END  WHEN (cash_hand_player_statistics.holecard_3 < cash_hand_player_statistics.holecard_1 AND cash_hand_player_statistics.holecard_3 < cash_hand_player_statistics.holecard_2 AND cash_hand_player_statistics.holecard_3 < cash_hand_player_statistics.holecard_4) THEN CASE    WHEN (cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_2 AND cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_4 ) THEN CASE    WHEN(cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_4) THEN     (cash_hand_player_statistics.holecard_3-1)*140608+(cash_hand_player_statistics.holecard_1-1)*2704+(cash_hand_player_statistics.holecard_2-1)*52+(cash_hand_player_statistics.holecard_4-1)     ELSE (cash_hand_player_statistics.holecard_3-1)*140608+(cash_hand_player_statistics.holecard_1-1)*2704+(cash_hand_player_statistics.holecard_4-1)*52+(cash_hand_player_statistics.holecard_2-1)  END   WHEN (cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_1 AND cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_4 ) THEN CASE     WHEN(cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_4) THEN     (cash_hand_player_statistics.holecard_3-1)*140608+(cash_hand_player_statistics.holecard_2-1)*2704+(cash_hand_player_statistics.holecard_1-1)*52+(cash_hand_player_statistics.holecard_4-1)     ELSE (cash_hand_player_statistics.holecard_3-1)*140608+(cash_hand_player_statistics.holecard_2-1)*2704+(cash_hand_player_statistics.holecard_4-1)*52+(cash_hand_player_statistics.holecard_1-1)  END   ELSE CASE     WHEN(cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_2) THEN     (cash_hand_player_statistics.holecard_3-1)*140608+(cash_hand_player_statistics.holecard_4-1)*2704+(cash_hand_player_statistics.holecard_1-1)*52+(cash_hand_player_statistics.holecard_2-1)     ELSE (cash_hand_player_statistics.holecard_3-1)*140608+(cash_hand_player_statistics.holecard_4-1)*2704+(cash_hand_player_statistics.holecard_2-1)*52+(cash_hand_player_statistics.holecard_1-1) END  END  WHEN (cash_hand_player_statistics.holecard_4 < cash_hand_player_statistics.holecard_1 AND cash_hand_player_statistics.holecard_4 < cash_hand_player_statistics.holecard_2 AND cash_hand_player_statistics.holecard_4 < cash_hand_player_statistics.holecard_3) THEN CASE    WHEN (cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_2 AND cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_3 ) THEN CASE    WHEN(cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_3) THEN     (cash_hand_player_statistics.holecard_4-1)*140608+(cash_hand_player_statistics.holecard_1-1)*2704+(cash_hand_player_statistics.holecard_2-1)*52+(cash_hand_player_statistics.holecard_3-1)     ELSE (cash_hand_player_statistics.holecard_4-1)*140608+(cash_hand_player_statistics.holecard_1-1)*2704+(cash_hand_player_statistics.holecard_3-1)*52+(cash_hand_player_statistics.holecard_2-1) END   WHEN (cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_1 AND cash_hand_player_statistics.holecard_2 < cash_hand_player_statistics.holecard_3 ) THEN CASE     WHEN(cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_3) THEN     (cash_hand_player_statistics.holecard_4-1)*140608+(cash_hand_player_statistics.holecard_2-1)*2704+(cash_hand_player_statistics.holecard_1-1)*52+(cash_hand_player_statistics.holecard_3-1)    ELSE (cash_hand_player_statistics.holecard_4-1)*140608+(cash_hand_player_statistics.holecard_2-1)*2704+(cash_hand_player_statistics.holecard_3-1)*52+(cash_hand_player_statistics.holecard_1-1) END   ELSE CASE     WHEN(cash_hand_player_statistics.holecard_1 < cash_hand_player_statistics.holecard_2) THEN     (cash_hand_player_statistics.holecard_4-1)*140608+(cash_hand_player_statistics.holecard_3-1)*2704+(cash_hand_player_statistics.holecard_1-1)*52+(cash_hand_player_statistics.holecard_2-1)    ELSE (cash_hand_player_statistics.holecard_4-1)*140608+(cash_hand_player_statistics.holecard_3-1)*2704+(cash_hand_player_statistics.holecard_2-1)*52+(cash_hand_player_statistics.holecard_1-1) END   END  ELSE 0  END  IN (613280) WHERE (cash_hand_player_statistics.holecard_1 > 0 AND cash_hand_player_statistics.id_gametype=2))))))
Flag_Hippo
Moderator
 
Posts: 14516
Joined: Tue Jan 31, 2012 7:50 am

Re: expression filter - syntax question

Postby ommaha » Sun May 27, 2018 7:16 pm

ok, that does not make a lot of sense then. thank you for explaining!
ommaha
 
Posts: 218
Joined: Sun Jul 29, 2012 8:46 am

Re: expression filter - syntax question

Postby BillGatesIII » Fri Jun 01, 2018 4:07 am

    It is possible to select certain starting hands in an Expression Filter with a custom build column.

    Code: Select all
    holecards_text in ('AhQdTs5h', 'KhJc8h7s', 'AhKhTh4d', 'AhAsJd8s', 'AhKd8h7d')

    Column holecards_text.

    Code: Select all
    id_holecard1_text || id_holecard1_suit_text || id_holecard2_text || id_holecard2_suit_text || id_holecard3_text || id_holecard3_suit_text || id_holecard4_text || id_holecard4_suit_text

    The id_holecardx_text and _suit_text columns are in the answer to your other post but I'll put the expressions here so we have it all together.

    Column id_holecard1_text.

    Code: Select all
    case when id_holecard1 > 0 then
       case id_holecard1 % 13
         when 0 then 'A'
         when 12 then 'K'
         when 11 then 'Q'
         when 10 then 'J'
         when 9 then 'T'
         else (id_holecard1 % 13 + 1)::text
       end
    else '' end

    Column id_holecard1_suit_text.

    Code: Select all
    case when id_holecard1 > 0 then
       case div(id_holecard1 - 1, 13)
         when 0 then 'c'
         when 1 then 'd'
         when 2 then 'h'
         when 3 then 's'
         else 'hole card one suit error'
       end
    else '' end


    Voilà.
    Hand report with selected starting hands.png
    BillGatesIII
     
    Posts: 740
    Joined: Fri Dec 16, 2011 6:50 pm

    Re: expression filter - syntax question

    Postby ommaha » Tue Oct 08, 2019 7:50 am

    I appreciate the help a lot. I am really sorry that it somehow fell under my Radar for so long!
    That looks great!

    What I don´t really understand is where to put those columns. I only know custom build columns from creating custom stats. Do I build them there? And if so, how do I select the columns in my report to be shown what you posted in the last picture?
    ommaha
     
    Posts: 218
    Joined: Sun Jul 29, 2012 8:46 am


    Return to Custom Stats, Reports and HUD Profiles

    Who is online

    Users browsing this forum: No registered users and 27 guests

    cron
    highfalutin