我试图对“费用”列进行汇总,然后按类型和日期列进行分组。这应该很简单,但是在我应用求和汇总并尝试按两列分组之后,我最终得到的结果要么太少,要么结果很多,每种情况下总和都是错误的。
如果我有如下表格:
<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>
什么是按功能分组才能获得与以下内容等效的输出?
<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>
我正在尝试对“费用”列进行汇总,但最终结果不正确
*编辑* 可接受的答案是正确的,但是对我来说出了什么问题呢?另外两列需要事先过滤才能获得预期的输出。
答案 0 :(得分:1)
您可以尝试使用group by
和sum
功能。
使用聚合函数时,需要在group by
中添加非聚合列。
SELECT date,type,Sum(Cost) Cost
FROM T
group by date,type
[结果] :
| 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 |