D-L*_*Lef 45 mysql sql aggregate-functions
这个sql代码抛出一个
WHERE中不允许使用聚合函数
SELECT o.ID , count(p.CAT)
FROM Orders o
INNER JOIN Products p ON o.P_ID = p.P_ID
WHERE count(p.CAT) > 3
GROUP BY o.ID;
Run Code Online (Sandbox Code Playgroud)
我怎样才能避免这个错误?
Azi*_*ikh 79
替换WHERE子句HAVING,如下所示:
SELECT o.ID , count(p.CAT)
FROM Orders o
INNER JOIN Products p ON o.P_ID = p.P_ID
GROUP BY o.ID
HAVING count(p.CAT) > 3;
Run Code Online (Sandbox Code Playgroud)
HAVING类似于WHERE,它们都用于过滤结果记录,但HAVING用于过滤聚合数据(何时GROUP BY使用).
使用HAVING子句而不是WHERE
试试这个:
SELECT o.ID, COUNT(p.CAT) cnt
FROM Orders o
INNER JOIN Products p ON o.P_ID = p.P_ID
GROUP BY o.ID HAVING cnt > 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47258 次 |
| 最近记录: |