首页 > 解决方案 > MySQL:带有 WHERE 子句的 SUM

问题描述

我有一个包含 clients_id 和付款数据的表。我尝试使用以下 SQL 查询汇总所有付款client_id并使用子句过滤结果WHERE

SELECT client_id, SUM(payment) AS total_payment 
FROM table1 
WHERE total_payment >= 1000 
GROUP BY client_id

此查询仅在没有 WHERE 子句的情况下工作。MySQL返回错误

#1054 - 'where 子句'中的未知列'total_payment'

任何指向正确方向的指针都会有所帮助。谢谢!

表 1 示例

| client_id | payment |
| --------- | ------- |
| 001       | 2000    |
| 001       | 20      |
| 002       | 1000    |
| 003       | 300     |
| 003       | 100     |
| 004       | 900     |

标签: mysqlsql

解决方案


您需要在 GROUP BY 情况下查看 HAVING

SELECT client_id, SUM(payment) AS total_payment 
FROM table1 
GROUP BY client_id
HAVING total_payment >= 1000

推荐阅读