我有一个包含订单 ID、产品 ID 和该订单每个产品数量的表格(如下表所示)。我必须选择 order_id 以及数量超过 5 的总数量。
+----------+------------+----------+
| order_id | product_id | quantity |
+----------+------------+----------+
| 1 | 1 | 6 |
| 1 | 2 | 1 |
| 2 | 3 | 3 |
| 2 | 2 | 2 |
| 3 | 1 | 3 |
| 3 | 3 | 5 |
+----------+------------+----------+
我试过的是
SELECT order_id, SUM(quantity) AS qty
FROM order_product
WHERE qty > 5 /* <-- Cannot use qty here */
GROUP BY order_id;
ERROR 1054 (42S22): Unknown column 'qty' in 'where clause'
AFAIK where 子句在对数量列求和之前执行,所以我不能在那里使用 qty 但是有什么方法可以在聚合之后运行条件,或者有没有其他方法可以解决它?
要在聚合后进行过滤,可以使用
HAVING
子句。