Nice mechanism.
OK so if I want to change "cnt_p_3bet_vs_mp_2bet" to "cnt_p_3bet_vs_mp_open" in 6max only, it will look like this:
sum(if[char_length(cash_hand_summary.str_aggressors_p) >= 2 AND cash_hand_summary.str_actors_p LIKE '2%' and cash_hand_player_statistics.flg_p_3bet AND ((cash_hand_summary.cnt_players BETWEEN 3 and 6 and substring(cash_hand_summary.str_aggressors_p from 2 for 1) = '2')), 1, 0])
I do not understand the "char_length(cash_hand_summary.str_aggressors_p) >= 2" part. Shouldn't it be JUST equals 2? If it is more than 2 - it is no longer a 3bet(it's 4bet+).
Also, I still don't fully understand substring. I understand it's function, but not how it is being used. Why is it " from 2 for 1" in this situation?
*I know I can remove the "cash_hand_summary.cnt_players BETWEEN 3 and 6" if it's purely for 6max but if it cause no harm I prefer to leave it there for future reference.
in 6max EP 2bet equals EP open(since it's just position 3), so I do not need to create new columns right?
(Though it is ((cash_hand_summary.cnt_players BETWEEN 4 and 6 and substring(cash_hand_summary.str_aggressors_p from 2 for 1)::int BETWEEN 3 and 5) and I think it can be "='3'" instead. There is no positions 4 and 5 in 6max )
