Javascript 基于同一列存在性合并表的两行

Javascript 基于同一列存在性合并表的两行,javascript,php,html,sql,Javascript,Php,Html,Sql,假设我有下表: <pre> <table> <tr> <td><b>id</b></td> <td><b>name</b></td> <td><b>rank</b></td> </tr>

假设我有下表:

<pre>
    <table>
        <tr>
            <td><b>id</b></td>
            <td><b>name</b></td>
            <td><b>rank</b></td>
        </tr>
        <tr>
            <td>A</td>
            <td>Chicago</td>
            <td>4</td>
        </tr>
        <tr>
            <td>B</td>
            <td>New York</td>
            <td>3</td>
        </tr>
        <tr>
            <td>A</td>
            <td>Chicago</td>
            <td>5</td>
        </tr>
        <tr>
            <td>C</td>
            <td>Ohio</td>
            <td>2</td>
        </tr>
        <tr>
            <td>A</td>
            <td>Chicago</td>
            <td>3</td>
        </tr>
    </table>
</pre>
SELECT id, name, avg(rank) FROM table GROUP BY id, name;

身份证件
名称
等级
A.
芝加哥
4.
B
纽约
3.
A.
芝加哥
5.
C
俄亥俄州
2.
A.
芝加哥
3.
其中id列与所有行相关

如何将具有相同id值的所有行合并在一起,并且秩列将是合并的所有行的平均值

例如,结果如下表所示:

<pre>
    <table>
        <tr>
            <td><b>id</b></td>
            <td><b>name</b></td>
            <td><b>rank</b></td>
        </tr>
        <tr>
            <td>A</td>
            <td>Chicago</td>
            <td>4</td>
        </tr>
        <tr>
            <td>B</td>
            <td>New York</td>
            <td>3</td>
        </tr>
        <tr>
            <td>A</td>
            <td>Chicago</td>
            <td>5</td>
        </tr>
        <tr>
            <td>C</td>
            <td>Ohio</td>
            <td>2</td>
        </tr>
        <tr>
            <td>A</td>
            <td>Chicago</td>
            <td>3</td>
        </tr>
    </table>
</pre>
SELECT id, name, avg(rank) FROM table GROUP BY id, name;

身份证件
名称
等级
A.
芝加哥
4.
B
纽约
3.
C
俄亥俄州
2.
其中,秩列中的4是第一个表中合并的所有行的平均和

注: 每行都是从二维数组中提取的数组。因此,结果必须是二维数组

使用SQL太难了,因为这个表由数据库中的其他4个表组成。所以我更喜欢用PHP或JavaScript来回答

谢谢

怎么样

SELECT `id`, `name`, AVG( rank ) AS `rank` FROM table_name GROUP BY `id`, `name` 
这里的关键是

正如您所说,您的表是通过连接四个表创建的,您可以将其与子选择一起使用:

SELECT ID,NAME,AVG([RANK])[RANK] FROM TABLE GROUP BY ID,NAME

谢谢,我以前一直在解决这个问题,现在它正在发挥作用。但我将尝试您的解决方案来添加更多知识。请为您的纯代码答案添加一些解释。请为您的纯代码答案添加一些解释。当新用户看到高重复率的用户发布纯代码解决方案时,他们认为这是“正确的做法”。请向新用户展示每个答案都值得解释。