Создание и редактирование статов в примерах.
Пример №1. В последних версиях PokerTracker 3 появилась возможность выводить статы по позициям (blinds, EP, MP, LP). Я считаю, что такой вывод статов более правильный, чем вывод статов по каждой конкретной позиции (импортированные статы), так как при уменьшении количества игроков за столом «логика» статистики по конкретной позиции искажается. Например, в 6 макс игре позиция Hijack - МР, а при сокращении числа игроков до пяти, позиция Hijack - EP. Вывод статов по каждой конкретной позиции этого не учитывает. Логика позиционности в ПТ3. Но мне кажется, что позиции blinds, всё же лучше разбить на отдельные позиции - SB и BB, так как игра в этих позициях слишком различная и не правильно смешивать статистику по ним. Создадим статы – PFR_SB и PFR_BB. Сначала посмотрим как рассчитывается обычный стат PFR без учета позиции, для этого посмотрим формулу расчета PFR. Формула следующая (cnt_pfr / cnt_hands) * 100. В формуле присутствует два расчетных значения (столбцы) cnt_pfr и cnt_hands. Посмотрим, как они рассчитываются: cnt_pfr - sum(if[holdem_hand_player_statistics.cnt_p_raise > 0, 1, 0]) cnt_hands - sum(if[holdem_hand_player_statistics.id_hand > 0, 1, 0]) Разберем выражение cnt_pfr - sum(if[holdem_hand_player_statistics.cnt_p_raise > 0, 1, 0]) . Подсчитывает количество рук, в которых игрок на префлопе делал рейз. Sum – оператор суммирования, означает, что результатом столбца будет сумма значений всех ячеек столбца. Ячейки столбца будут получать значения по следующему принципу if[holdem_hand_player_statistics.cnt_p_raise > 0, 1, 0]. Если (if) значение holdem_hand_player_statistics.cnt_p_raise > 0 - то значение в ячейке 1 иначе 0. Описания ячеек таблиц баз данных есть здесь. holdem_hand_player_statistics – название таблицы базы данных. cnt_p_raise – название ячейки. В данном случае, cnt_p_raise - количество рейзов игрока на префлопе в данном розыгрыше. Выражение cnt_hands - sum(if[holdem_hand_player_statistics.id_hand > 0, 1, 0]). Подсчитывает количество сыгранных рук игроком. Sum – оператор суммирования, означает, что результатом столбца будет сумма значений всех ячеек столбца. Ячейки столбца будут получать значения по следующему принципу if[holdem_hand_player_statistics. id_hand > 0, 1, 0] . Если (if) значение holdem_hand_player_statistics. id_hand > 0 - то значение в ячейке 1 иначе 0. id_hand - идентификатор розыгрыша. Теперь мы представляем как рассчитывается стат PFR без учета позиции и попробуем по аналогии написать стат PFR_SB и PFR_BB. Сначала составим формулу для PFR_SB. Формула будет выглядеть так: (cnt_pfr_sb / cnt_hands_sb) * 100 Где cnt_pfr_sb (столбец)– количество рук, в которых игрок делал рейз на префлопе в позиции SB, а cnt_hands_sb (столбец)– общее количество рук сыгранных в позиции SB. Посмотрев таблицу holdem_hand_player_statistics мы находим в ней следующие необходимые нам параметры (ячейки) для расчета наших столбцов:
Формула расчета столбца cnt_pfr_sb будет следующая - sum(if[holdem_hand_player_statistics.cnt_p_raise > 0 and holdem_hand_player_statistics.position = 9, 1, 0]). А формула расчета столбца cnt_hands_sb - sum(if[holdem_hand_player_statistics.position = 9, 1, 0]). And – логическое «И», если оба выражения истинны результат 1, во всех остальных случаях 0. Для стата PFR_BB формулы расчета будут такие же как и для PFR_SB за исключением того что номер позиции будет равняться восьми, а не девяти. PFR_BB (cnt_pfr_bb / cnt_hands_bb) * 100 cnt_pfr_bb sum(if[holdem_hand_player_statistics.cnt_p_raise > 0 and holdem_hand_player_statistics.position = 8, 1, 0]) cnt_hands_bb sum(if[holdem_hand_player_statistics.position = 8, 1, 0]) Расчет формул сделан, переходим к реальному созданию данных статов. Выбираем вкладку «Configure → Configure Stats». На вкладке Sections выделяем подраздел Holdem Cash Player Statistics (если делаем статы для турниров, то Holdem Tournament Player Statistics) Переходим на вкладку Columns и нажимаем кнопку New. Вписываем в поле Name наименование столбца для расчета количества рук, в которых игрок делал рейз на префлопе в позиции SB - cnt_pfr_sb, в поле Expression нашу формулу расчета столбца - sum(if[holdem_hand_player_statistics.cnt_p_raise > 0 and holdem_hand_player_statistics.position = 9, 1, 0]). Проверяем соответствие формулы правилам написания SQL запросов, нажав кнопку Validate. Сохраняем нашу запись, нажав кнопку Save. В поле Existing Columns мы видим, что в списке столбцов появился созданный нами столбец cnt_pfr_sb. Для создания следующего нашего столбца - cnt_hands_sb, опять нажимаем кнопку New. Вписываем в поле Name наименование столбца для расчета общего количество рук сыгранных в позиции SB - cnt_hands_sb, в поле Expression нашу формулу расчета столбца - sum(if[holdem_hand_player_statistics.position = 9, 1, 0]). Проверяем соответствие формулы правилам написания SQL запросов, нажав кнопку Validate. Сохраняем нашу запись, нажав кнопку Save. В поле Existing Columns мы видим, что в списке столбцов появился созданный нами столбец cnt_hands_sb. Продолжение → |