【问题标题】:Group values and get percentage from database分组值并从数据库中获取百分比
【发布时间】:2013-10-03 14:53:38
【问题描述】:

我有一个数据库表,我在其中保存玩家的赌注,逻辑如下:

这个表当然会为每个 ma​​tch_id 提供多个 user_id。我想显示用户如何下注。如果他们认为主队会赢输或平局。我希望它以百分比表示。

德国 - 法国 35% - 20% - 45%。

到目前为止,我已经通过以下查询设法计算了数量猜测,但没有计算百分比:

SELECT games.home_team,games.away_team,COUNT(*) as 'qty',user_result_bet.match_id,(
CASE
WHEN `home_score` > `away_score` THEN 'home'
WHEN `home_score` < `away_score` THEN 'away'
ELSE 'draw'
END) as 'tipped_result'
FROM user_result_bet,GAMES
WHERE games.match_id = user_result_bet.match_id
GROUP BY tipped_result, match_id
ORDER BY match_id

我从这里去哪里?我想以某种方式将其转换为百分比?我在网站上使用 PHP

【问题讨论】:

    标签: php mysql sql database percentage


    【解决方案1】:

    如果

    你需要使用计数
    SELECT user_result_bet.match_id,COUNT(*) as 'qty',
    
    count(if(`home_score` > `away_score`,1,null))/count(*)*100 as home_percent,
    count(if(`home_score` < `away_score`,1,null))/count(*)*100 as away_percent,
    count(if(`home_score` = `away_score`,1,null))/count(*)*100 as draw_percent
    from wherever
    group by 1
    

    【讨论】:

    • 你思考一个问题一个月,然后你把它贴在这里,你会在 5 分钟内得到答案(也是正确的)。谢谢! :)
    • 这也是我开始使用堆栈时的第一次体验 :)
    【解决方案2】:
    SUM(CASE WHEN `home_score` > `away_score` THEN 1 ELSE 0 END)/COUNT(*) AS PercentageHome
    

    【讨论】:

      猜你喜欢
      • 2022-12-12
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多