gpt4 book ai didi

mysql - SQL:按两列分组并求和

转载 作者:搜寻专家 更新时间:2023-10-30 23:29:13 24 4
gpt4 key购买 nike

我正在尝试汇总成本列,然后按类型分组,然后按日期列分组。它应该非常简单,但在我应用总和并尝试按两列分组后,我总是以太少或两个结果结束,并且在每种情况下总计都是错误的。

如果我有如下表格:

<table >
<tbody>
<tr>
<td> Date</td>
<td> Type</td>
<td> Cost</td>
</tr>
<tr>
<td> Jan 01</td>
<td> TV</td>
<td> 20</td>
</tr>
<tr>
<td> Jan 01</td>
<td> TV</td>
<td> 25</td>
</tr>
<tr>
<td> Jan 01</td>
<td>Phone </td>
<td> 10</td>
</tr>
<tr>
<td> Jan 01</td>
<td> Phone</td>
<td> 20</td>
</tr>
<tr>
<td> Jan 02</td>
<td> TV</td>
<td> 30</td>
</tr>
<tr>
<td> Jan 02</td>
<td> Phone</td>
<td> 80</td>
</tr>
<tr>
<td> Jan 02</td>
<td> Phone</td>
<td> 20</td>
</tr>
<tr>
<td> Jan 03</td>
<td> TV</td>
<td>20 </td>
</tr>
<tr>
<td> Jan 03</td>
<td> TV</td>
<td> 40</td>
</tr>
<tr>
<td> Jan 03</td>
<td> Other</td>
<td> 10</td>
</tr>
</tbody>
</table>

什么是正确的 group by 函数来获得等同于的输出:

<table >
<tbody>
<tr>
<td> Date</td>
<td> Type</td>
<td> Cost</td>
</tr>
<tr>
<td> Jan 01</td>
<td> TV</td>
<td> 45</td>
</tr>
<tr>
<td> Jan 01</td>
<td>Phone </td>
<td> 30</td>
</tr>
<tr>
<td> Jan 02</td>
<td> TV</td>
<td> 30</td>
</tr>
<tr>
<td> Jan 02</td>
<td> Phone</td>
<td> 100</td>
</tr>
<tr>
<td> Jan 03</td>
<td> TV</td>
<td>60 </td>
</tr>
<tr>
<td> Jan 03</td>
<td> Other</td>
<td> 10</td>
</tr>
</tbody>
</table>

我正在尝试对“成本”列求和,但结果总是不正确

* 编辑 *接受的答案是正确的,但对我来说出了什么问题是指另外两列需要事先过滤以获得预期的输出。

最佳答案

您可以尝试使用group bysum 函数。

当您使用聚合函数时,您需要在group by中添加非聚合列。

SELECT date,type,Sum(Cost)  Cost
FROM T
group by date,type

sqlfiddle

[结果]:

|   date |  type | Cost      |
|--------|-------|-----------|
| Jan 01 | Phone | 30 |
| Jan 01 | TV | 45 |
| Jan 02 | Phone | 100 |
| Jan 02 | TV | 30 |
| Jan 03 | Other | 10 |
| Jan 03 | TV | 60 |

关于mysql - SQL:按两列分组并求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51584802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com