fix a merge problem and replace to_char() for sqlite, player stats now working in sqlite :-)
This commit is contained in:
parent
ea323d0d22
commit
6eba4a5544
|
@ -544,7 +544,7 @@ class GuiPlayerStats (threading.Thread):
|
||||||
# set flag in self.columns to show posn column
|
# set flag in self.columns to show posn column
|
||||||
[x for x in self.columns if x[0] == 'plposition'][0][1] = True
|
[x for x in self.columns if x[0] == 'plposition'][0][1] = True
|
||||||
else:
|
else:
|
||||||
query = query.replace("<position>", "'1'")
|
query = query.replace("<position>", "gt.base")
|
||||||
# unset flag in self.columns to hide posn column
|
# unset flag in self.columns to hide posn column
|
||||||
[x for x in self.columns if x[0] == 'plposition'][0][1] = False
|
[x for x in self.columns if x[0] == 'plposition'][0][1] = False
|
||||||
|
|
||||||
|
|
269
pyfpdb/SQL.py
269
pyfpdb/SQL.py
|
@ -1940,7 +1940,7 @@ class Sql:
|
||||||
and h.seats <seats_test>
|
and h.seats <seats_test>
|
||||||
<flagtest>
|
<flagtest>
|
||||||
<gtbigBlind_test>
|
<gtbigBlind_test>
|
||||||
and to_char(h.handStart, 'YYYY-MM-DD') <datestest>
|
and date(h.handStart) <datestest>
|
||||||
group by hgameTypeId
|
group by hgameTypeId
|
||||||
,hp.playerId
|
,hp.playerId
|
||||||
,gt.base
|
,gt.base
|
||||||
|
@ -1960,272 +1960,7 @@ class Sql:
|
||||||
end
|
end
|
||||||
<orderbyhgameTypeId>
|
<orderbyhgameTypeId>
|
||||||
,upper(gt.limitType) desc
|
,upper(gt.limitType) desc
|
||||||
,maxbigblind desc
|
,max(gt.bigBlind) desc
|
||||||
,s.name
|
|
||||||
"""
|
|
||||||
|
|
||||||
if db_server == 'mysql':
|
|
||||||
self.query['playerStats'] = """
|
|
||||||
SELECT
|
|
||||||
concat(upper(stats.limitType), ' '
|
|
||||||
,concat(upper(substring(stats.category,1,1)),substring(stats.category,2) ), ' '
|
|
||||||
,stats.name, ' '
|
|
||||||
,cast(stats.bigBlindDesc as char)
|
|
||||||
) AS Game
|
|
||||||
,stats.n
|
|
||||||
,stats.vpip
|
|
||||||
,stats.pfr
|
|
||||||
,stats.pf3
|
|
||||||
,stats.steals
|
|
||||||
,stats.saw_f
|
|
||||||
,stats.sawsd
|
|
||||||
,stats.wtsdwsf
|
|
||||||
,stats.wmsd
|
|
||||||
,stats.FlAFq
|
|
||||||
,stats.TuAFq
|
|
||||||
,stats.RvAFq
|
|
||||||
,stats.PoFAFq
|
|
||||||
,stats.Net
|
|
||||||
,stats.BBper100
|
|
||||||
,stats.Profitperhand
|
|
||||||
,case when hprof2.variance = -999 then '-'
|
|
||||||
else format(hprof2.variance, 2)
|
|
||||||
end AS Variance
|
|
||||||
,stats.AvgSeats
|
|
||||||
FROM
|
|
||||||
(select /* stats from hudcache */
|
|
||||||
gt.base
|
|
||||||
,gt.category
|
|
||||||
,upper(gt.limitType) as limitType
|
|
||||||
,s.name
|
|
||||||
,<selectgt.bigBlind> AS bigBlindDesc
|
|
||||||
,<hcgametypeId> AS gtId
|
|
||||||
,sum(HDs) AS n
|
|
||||||
,format(100.0*sum(street0VPI)/sum(HDs),1) AS vpip
|
|
||||||
,format(100.0*sum(street0Aggr)/sum(HDs),1) AS pfr
|
|
||||||
,case when sum(street0_3Bchance) = 0 then '0'
|
|
||||||
else format(100.0*sum(street0_3Bdone)/sum(street0_3Bchance),1)
|
|
||||||
end AS pf3
|
|
||||||
,case when sum(stealattemptchance) = 0 then '-'
|
|
||||||
else format(100.0*sum(stealattempted)/sum(stealattemptchance),1)
|
|
||||||
end AS steals
|
|
||||||
,format(100.0*sum(street1Seen)/sum(HDs),1) AS saw_f
|
|
||||||
,format(100.0*sum(sawShowdown)/sum(HDs),1) AS sawsd
|
|
||||||
,case when sum(street1Seen) = 0 then '-'
|
|
||||||
else format(100.0*sum(sawShowdown)/sum(street1Seen),1)
|
|
||||||
end AS wtsdwsf
|
|
||||||
,case when sum(sawShowdown) = 0 then '-'
|
|
||||||
else format(100.0*sum(wonAtSD)/sum(sawShowdown),1)
|
|
||||||
end AS wmsd
|
|
||||||
,case when sum(street1Seen) = 0 then '-'
|
|
||||||
else format(100.0*sum(street1Aggr)/sum(street1Seen),1)
|
|
||||||
end AS FlAFq
|
|
||||||
,case when sum(street2Seen) = 0 then '-'
|
|
||||||
else format(100.0*sum(street2Aggr)/sum(street2Seen),1)
|
|
||||||
end AS TuAFq
|
|
||||||
,case when sum(street3Seen) = 0 then '-'
|
|
||||||
else format(100.0*sum(street3Aggr)/sum(street3Seen),1)
|
|
||||||
end AS RvAFq
|
|
||||||
,case when sum(street1Seen)+sum(street2Seen)+sum(street3Seen) = 0 then '-'
|
|
||||||
else format(100.0*(sum(street1Aggr)+sum(street2Aggr)+sum(street3Aggr))
|
|
||||||
/(sum(street1Seen)+sum(street2Seen)+sum(street3Seen)),1)
|
|
||||||
end AS PoFAFq
|
|
||||||
,format(sum(totalProfit)/100.0,2) AS Net
|
|
||||||
,format((sum(totalProfit/(gt.bigBlind+0.0))) / (sum(HDs)/100.0),2)
|
|
||||||
AS BBper100
|
|
||||||
,format( (sum(totalProfit)/100.0) / sum(HDs), 4) AS Profitperhand
|
|
||||||
,format( sum(activeSeats*HDs)/(sum(HDs)+0.0), 2) AS AvgSeats
|
|
||||||
from Gametypes gt
|
|
||||||
inner join Sites s on s.Id = gt.siteId
|
|
||||||
inner join HudCache hc on hc.gameTypeId = gt.Id
|
|
||||||
where hc.playerId in <player_test>
|
|
||||||
and <gtbigBlind_test>
|
|
||||||
and hc.activeSeats <seats_test>
|
|
||||||
and concat( '20', substring(hc.styleKey,2,2), '-', substring(hc.styleKey,4,2), '-'
|
|
||||||
, substring(hc.styleKey,6,2) ) <datestest>
|
|
||||||
group by gt.base
|
|
||||||
,gt.category
|
|
||||||
<groupbyseats>
|
|
||||||
,plposition
|
|
||||||
,upper(gt.limitType)
|
|
||||||
,s.name
|
|
||||||
having 1 = 1 <havingclause>
|
|
||||||
order by pname
|
|
||||||
,gt.base
|
|
||||||
,gt.category
|
|
||||||
<orderbyseats>
|
|
||||||
,case <position> when 'B' then 'B'
|
|
||||||
when 'S' then 'S'
|
|
||||||
else concat('Z', <position>)
|
|
||||||
end
|
|
||||||
<orderbyhgameTypeId>
|
|
||||||
,upper(gt.limitType) desc
|
|
||||||
,maxbigblind desc
|
|
||||||
,s.name
|
|
||||||
"""
|
|
||||||
elif db_server == 'postgresql':
|
|
||||||
self.query['playerDetailedStats'] = """
|
|
||||||
select <hgameTypeId> AS hgametypeid
|
|
||||||
,<playerName> AS pname
|
|
||||||
,gt.base
|
|
||||||
,gt.category
|
|
||||||
,upper(gt.limitType) AS limittype
|
|
||||||
,s.name
|
|
||||||
,min(gt.bigBlind) AS minbigblind
|
|
||||||
,max(gt.bigBlind) AS maxbigblind
|
|
||||||
/*,<hcgametypeId> AS gtid*/
|
|
||||||
,<position> AS plposition
|
|
||||||
,count(1) AS n
|
|
||||||
,100.0*sum(cast(hp.street0VPI as <signed>integer))/count(1) AS vpip
|
|
||||||
,100.0*sum(cast(hp.street0Aggr as <signed>integer))/count(1) AS pfr
|
|
||||||
,case when sum(cast(hp.street0_3Bchance as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.street0_3Bdone as <signed>integer))/sum(cast(hp.street0_3Bchance as <signed>integer))
|
|
||||||
end AS pf3
|
|
||||||
,case when sum(cast(hp.stealattemptchance as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.stealattempted as <signed>integer))/sum(cast(hp.stealattemptchance as <signed>integer))
|
|
||||||
end AS steals
|
|
||||||
,100.0*sum(cast(hp.street1Seen as <signed>integer))/count(1) AS saw_f
|
|
||||||
,100.0*sum(cast(hp.sawShowdown as <signed>integer))/count(1) AS sawsd
|
|
||||||
,case when sum(cast(hp.street1Seen as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.sawShowdown as <signed>integer))/sum(cast(hp.street1Seen as <signed>integer))
|
|
||||||
end AS wtsdwsf
|
|
||||||
,case when sum(cast(hp.sawShowdown as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.wonAtSD as <signed>integer))/sum(cast(hp.sawShowdown as <signed>integer))
|
|
||||||
end AS wmsd
|
|
||||||
,case when sum(cast(hp.street1Seen as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.street1Aggr as <signed>integer))/sum(cast(hp.street1Seen as <signed>integer))
|
|
||||||
end AS flafq
|
|
||||||
,case when sum(cast(hp.street2Seen as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.street2Aggr as <signed>integer))/sum(cast(hp.street2Seen as <signed>integer))
|
|
||||||
end AS tuafq
|
|
||||||
,case when sum(cast(hp.street3Seen as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.street3Aggr as <signed>integer))/sum(cast(hp.street3Seen as <signed>integer))
|
|
||||||
end AS rvafq
|
|
||||||
,case when sum(cast(hp.street1Seen as <signed>integer))+sum(cast(hp.street2Seen as <signed>integer))+sum(cast(hp.street3Seen as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*(sum(cast(hp.street1Aggr as <signed>integer))+sum(cast(hp.street2Aggr as <signed>integer))+sum(cast(hp.street3Aggr as <signed>integer)))
|
|
||||||
/(sum(cast(hp.street1Seen as <signed>integer))+sum(cast(hp.street2Seen as <signed>integer))+sum(cast(hp.street3Seen as <signed>integer)))
|
|
||||||
end AS pofafq
|
|
||||||
,sum(hp.totalProfit)/100.0 AS net
|
|
||||||
,sum(hp.rake)/100.0 AS rake
|
|
||||||
,100.0*avg(hp.totalProfit/(gt.bigBlind+0.0)) AS bbper100
|
|
||||||
,avg(hp.totalProfit)/100.0 AS profitperhand
|
|
||||||
,100.0*avg((hp.totalProfit+hp.rake)/(gt.bigBlind+0.0)) AS bb100xr
|
|
||||||
,avg((hp.totalProfit+hp.rake)/100.0) AS profhndxr
|
|
||||||
,avg(h.seats+0.0) AS avgseats
|
|
||||||
,variance(hp.totalProfit/100.0) AS variance
|
|
||||||
from HandsPlayers hp
|
|
||||||
inner join Hands h on (h.id = hp.handId)
|
|
||||||
inner join Gametypes gt on (gt.Id = h.gameTypeId)
|
|
||||||
inner join Sites s on (s.Id = gt.siteId)
|
|
||||||
inner join Players p on (p.Id = hp.playerId)
|
|
||||||
where hp.playerId in <player_test>
|
|
||||||
/*and hp.tourneysPlayersId IS NULL*/
|
|
||||||
and h.seats <seats_test>
|
|
||||||
<flagtest>
|
|
||||||
<gtbigBlind_test>
|
|
||||||
and to_char(h.handStart, 'YYYY-MM-DD') <datestest>
|
|
||||||
group by hgameTypeId
|
|
||||||
,pname
|
|
||||||
,gt.base
|
|
||||||
,gt.category
|
|
||||||
<groupbyseats>
|
|
||||||
,plposition
|
|
||||||
,upper(gt.limitType)
|
|
||||||
,s.name
|
|
||||||
having 1 = 1 <havingclause>
|
|
||||||
order by pname
|
|
||||||
,gt.base
|
|
||||||
,gt.category
|
|
||||||
<orderbyseats>
|
|
||||||
,case <position> when 'B' then 'B'
|
|
||||||
when 'S' then 'S'
|
|
||||||
when '0' then 'Y'
|
|
||||||
else 'Z'||<position>
|
|
||||||
end
|
|
||||||
<orderbyhgameTypeId>
|
|
||||||
,upper(gt.limitType) desc
|
|
||||||
,maxbigblind desc
|
|
||||||
,s.name
|
|
||||||
"""
|
|
||||||
elif db_server == 'sqlite':
|
|
||||||
self.query['playerDetailedStats'] = """
|
|
||||||
select <hgameTypeId> AS hgametypeid
|
|
||||||
,gt.base
|
|
||||||
,gt.category
|
|
||||||
,upper(gt.limitType) AS limittype
|
|
||||||
,s.name
|
|
||||||
,min(gt.bigBlind) AS minbigblind
|
|
||||||
,max(gt.bigBlind) AS maxbigblind
|
|
||||||
/*,<hcgametypeId> AS gtid*/
|
|
||||||
,<position> AS plposition
|
|
||||||
,count(1) AS n
|
|
||||||
,100.0*sum(cast(hp.street0VPI as <signed>integer))/count(1) AS vpip
|
|
||||||
,100.0*sum(cast(hp.street0Aggr as <signed>integer))/count(1) AS pfr
|
|
||||||
,case when sum(cast(hp.street0_3Bchance as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.street0_3Bdone as <signed>integer))/sum(cast(hp.street0_3Bchance as <signed>integer))
|
|
||||||
end AS pf3
|
|
||||||
,case when sum(cast(hp.stealattemptchance as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.stealattempted as <signed>integer))/sum(cast(hp.stealattemptchance as <signed>integer))
|
|
||||||
end AS steals
|
|
||||||
,100.0*sum(cast(hp.street1Seen as <signed>integer))/count(1) AS saw_f
|
|
||||||
,100.0*sum(cast(hp.sawShowdown as <signed>integer))/count(1) AS sawsd
|
|
||||||
,case when sum(cast(hp.street1Seen as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.sawShowdown as <signed>integer))/sum(cast(hp.street1Seen as <signed>integer))
|
|
||||||
end AS wtsdwsf
|
|
||||||
,case when sum(cast(hp.sawShowdown as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.wonAtSD as <signed>integer))/sum(cast(hp.sawShowdown as <signed>integer))
|
|
||||||
end AS wmsd
|
|
||||||
,case when sum(cast(hp.street1Seen as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.street1Aggr as <signed>integer))/sum(cast(hp.street1Seen as <signed>integer))
|
|
||||||
end AS flafq
|
|
||||||
,case when sum(cast(hp.street2Seen as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.street2Aggr as <signed>integer))/sum(cast(hp.street2Seen as <signed>integer))
|
|
||||||
end AS tuafq
|
|
||||||
,case when sum(cast(hp.street3Seen as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*sum(cast(hp.street3Aggr as <signed>integer))/sum(cast(hp.street3Seen as <signed>integer))
|
|
||||||
end AS rvafq
|
|
||||||
,case when sum(cast(hp.street1Seen as <signed>integer))+sum(cast(hp.street2Seen as <signed>integer))+sum(cast(hp.street3Seen as <signed>integer)) = 0 then -999
|
|
||||||
else 100.0*(sum(cast(hp.street1Aggr as <signed>integer))+sum(cast(hp.street2Aggr as <signed>integer))+sum(cast(hp.street3Aggr as <signed>integer)))
|
|
||||||
/(sum(cast(hp.street1Seen as <signed>integer))+sum(cast(hp.street2Seen as <signed>integer))+sum(cast(hp.street3Seen as <signed>integer)))
|
|
||||||
end AS pofafq
|
|
||||||
,sum(hp.totalProfit)/100.0 AS net
|
|
||||||
,sum(hp.rake)/100.0 AS rake
|
|
||||||
,100.0*avg(hp.totalProfit/(gt.bigBlind+0.0)) AS bbper100
|
|
||||||
,avg(hp.totalProfit)/100.0 AS profitperhand
|
|
||||||
,100.0*avg((hp.totalProfit+hp.rake)/(gt.bigBlind+0.0)) AS bb100xr
|
|
||||||
,avg((hp.totalProfit+hp.rake)/100.0) AS profhndxr
|
|
||||||
,avg(h.seats+0.0) AS avgseats
|
|
||||||
,variance(hp.totalProfit/100.0) AS variance
|
|
||||||
from HandsPlayers hp
|
|
||||||
inner join Hands h on (h.id = hp.handId)
|
|
||||||
inner join Gametypes gt on (gt.Id = h.gameTypeId)
|
|
||||||
inner join Sites s on (s.Id = gt.siteId)
|
|
||||||
where hp.playerId in <player_test>
|
|
||||||
/*and hp.tourneysPlayersId IS NULL*/
|
|
||||||
and h.seats <seats_test>
|
|
||||||
<flagtest>
|
|
||||||
<gtbigBlind_test>
|
|
||||||
and to_char(h.handStart, 'YYYY-MM-DD') <datestest>
|
|
||||||
group by hgameTypeId
|
|
||||||
,hp.playerId
|
|
||||||
,gt.base
|
|
||||||
,gt.category
|
|
||||||
<groupbyseats>
|
|
||||||
,plposition
|
|
||||||
,upper(gt.limitType)
|
|
||||||
,s.name
|
|
||||||
order by hp.playerId
|
|
||||||
,gt.base
|
|
||||||
,gt.category
|
|
||||||
<orderbyseats>
|
|
||||||
,case <position> when 'B' then 'B'
|
|
||||||
when 'S' then 'S'
|
|
||||||
when '0' then 'Y'
|
|
||||||
else 'Z'||<position>
|
|
||||||
end
|
|
||||||
<orderbyhgameTypeId>
|
|
||||||
,upper(gt.limitType) desc
|
|
||||||
,maxbigblind desc
|
|
||||||
,s.name
|
,s.name
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user