有没有办法只在其中一列有某个值的情况下对行求和?我有这张table:
| order_id | total | is_tip |
-----------------------------
| 1 | 12 | 1 |
| 1 | 3 | 0 |
| 2 | 28 | 0 |
| 2 | 15 | 0 |
| 3 | 39 | 1 |
| 3 | 8 | 1 |
预期结果是:
| order_id | SUM(total) |
-------------------------
| 1 | 15 |
| 3 | 47 |
只有当其中一列等于1时,才会求和。所以订单ID 1和3是合格的。到目前为止,我尝试使用以下查询:
SELECT order_id, SUM(total) FROM orders HAVING COUNT(is_tip) >= 1;
但这个问题是错误的。我只是个初学者。先谢谢你。
2条答案
按热度按时间iszxjhcz1#
使用
having
条款:您的查询还需要
GROUP BY
. 我假设你想和至少一个“小费”吵架。你也可以说HAVING
条款如下:jm81lzqq2#
请使用下面的查询,