php - 第二个 SELECT 语句的 SUM - PHP - MySQL

标签 php mysql limit group-concat

我有以下有效的查询...但我需要一些更改:

SELECT
    p.pid,
    p.name,   
    GROUP_CONCAT( gC.leaguepoints ORDER BY leaguepoints DESC ) AS leaguepoints        
FROM
    golf_player p
LEFT JOIN
    golf_card gC ON
    p.pid = gC.pid
GROUP BY
    p.pid
ORDER BY
    p.name
DESC

我真正想要的是返回另一个名为 totalleaguepoints 的属性,它是我表中最近 20 个联赛积分的总和。

如何为 group_concat 添加限制?

可能是这样的?

 SELECT                
      p.pid,
      p.name,   
      GROUP_CONCAT( gC.leaguepoints ORDER BY leaguepoints DESC ) AS leaguepoints, 
      SUM(  
        SELECT 
          gC2.leaguepoints
        FROM
          golf_card gC2
        WHERE 
          gC2.pid = p.pid
        ORDER BY
          leaguepoints
          DESC
        LIMIT 20           
      ) AS totalleaguepoints
  FROM
    golf_player p
  LEFT JOIN
    golf_card gC ON
    p.pid = gC.pid
  GROUP BY
    p.pid
  ORDER BY
    p.name
    DESC               

P.S,上面的查询没有运行

最佳答案

您是否只想要 group_concat 中每个球员的前 20 名联赛积分以及总和?

如果可以,可以使用用户变量:-

SELECT                
    p.pid,
    p.name,   
    GROUP_CONCAT( gC.leaguepoints ORDER BY leaguepoints DESC ) AS leaguepoints, 
    SUM(gC.leaguepoints) AS totalleaguepoints
FROM golf_player p
LEFT JOIN 
(
    SELECT pid, leaguepoints, @Sequence:=IF(@PrevPid = pid, @Sequence + 1, 0) AS aSequence, @PrevPid := pid
    FROM
    (
        SELECT pid, leaguepoints
        FROM golf_card 
        ORDER BY pid, leaguepoints DESC
    ) Sub1
    CROSS JOIN (SELECT @PrevPid := 0, @Sequence := 0) Sub2
) gC
ON p.pid = gC.pid AND aSequence < 20
GROUP BY p.pid
ORDER BY p.name DESC 

关于php - 第二个 SELECT 语句的 SUM - PHP - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17544922/

相关文章:

php - 限制通过 cron 作业运行的文件直接访问

mysql - 如何每隔[时间间隔]从 CSV 文件更新 MySQL 表?

c# - 如何正确分组我的 LINQ 查询?

mysql - 如何限制 Laravel 中特定外键值的行数

php - 如何使用 InnoDB 表加速缓慢的 MySQL UPDATE 查询

php - Highcharts 为空白

php - preg_replace '/[^0-9]/' 或 '/\D/' 或 '/\d/' 之间的区别?

javascript - 无法读取未定义的sequelize Express JS 的属性 'findAll'

.htaccess - 是否可以使用 .htaccess 根据文件大小阻止对文件的访问?

mysql - SQL : Limit and Randomize results in join