繁体   English   中英

将2个或更多不同行的列值相加。 的SQL

[英]Adding column values of 2 or more non distinct rows. SQL

我有一个具有以下方案的表: http : //i.stack.imgur.com/zH2zz.png
该表适用于冰球联赛(Link Here) 这是第二季统计数据将保存在数据库中。 如果您在链接中选择下拉菜单,您将看到我可以为两个季节生成前20个列表(1个季节除1个测试员外没有其他数据)。 我们的目标是将这两个赛季合计为“所有时间”前20名。 我尝试使用sum函数,但是实际上将每一行都添加到了1中。

我只想对重复的玩家ID的行求和。 例如,我是玩家ID#2,我需要为每个包含目标PID的行添加每个进球和助攻,但对于1个查询中的所有前20个玩家,我都需要此目标。 这是到目前为止我正在使用的一些查询。

SELECT Rosters.PID, Rosters.Goals, Rosters.Assists, Rosters.PIM, Rosters.Num, Rosters.TID, Players.pid, Players.firstname, Players.lastname,
      (Rosters.Goals + Rosters.Assists) AS Points
      FROM Rosters
      INNER JOIN Players
      ON Rosters.PID = Players.pid
      WHERE Rosters.TID BETWEEN $parameter
      ORDER BY Points DESC, Goals DESC
      LIMIT 0,20

$parameter基于团队ID(TID)。共有16个TID(每个赛季8个)。 当参数为1-16时,此查询将获取所有记录,只是不会通过PID来添加不同的行(这最终是我想学习的方法)。 这是显示如何实例化查询的下拉列表

<div class="ddstyle">
    <select name="DropDownTeams" id="DDTeams">
        <option>Select a Season</option>
        <option value="stats2.php?tid=9 AND 16">2015-2016</option>
        <option value="stats2.php?tid=1 AND 8">2014-2015</option>
        <option value="stats2.php?tid=1 AND 16">All Time</option>
    </select>
</div>

我试着做:

SELECT Rosters.PID, SUM( Rosters.Goals ) Goals, SUM( Rosters.Assists ) Assists, SUM( Rosters.PIM ) PIM, Rosters.Num, Rosters.TID, Players.pid, Players.firstname, Players.lastname, 
    SUM((Rosters.Goals + Rosters.Assists)) AS Points
    FROM Rosters
    INNER JOIN Players
    ON Rosters.PID = Players.pid
    WHERE Rosters.TID BETWEEN 1 AND 16
    ORDER BY Points DESC, Goals DESC
    LIMIT 0,20;

但这只是将每条记录加到一行中。 当与SUM()函数一起使用时,Where子句显然无法按我想要的方式工作。

包括“ Group BY依据”部分http://www.w3schools.com/sql/sql_groupby.asp

SELECT Rosters.PID
    ,SUM(Rosters.Goals) Goals
    ,SUM(Rosters.Assists) Assists
    ,SUM(Rosters.PIM) PIM
    ,Players.pid
    ,SUM((Rosters.Goals + Rosters.Assists)) AS Points
FROM Rosters
INNER JOIN Players ON Rosters.PID = Players.pid
WHERE Rosters.TID BETWEEN 1
        AND 16
GROUP BY 
    Players.pid
ORDER BY Points DESC
    ,Goals DESC 
LIMIT 0
    ,20;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM