mysql - 在这个 SQL 语句中的哪里添加一个 where?

标签 mysql sql count sql-order-by where-clause

我一直在使用的一个旧 Cake (php) 网站已经过渗透测试,我正试图找出哪些购物车商品已经装满了数千件商品。

以下代码有效,并按 session 降序给我和排序的购物车项目列表:

SELECT *, COUNT(session_code) AS the_count FROM cart_items GROUP BY session_code ORDER BY the_count DESC;

我想做的是在其中添加一个最终位置,这样我就可以得到数量超过 1000 的购物车商品,如下所示:

(注意下面的代码不起作用)

SELECT *, COUNT(session_code) AS the_count FROM cart_items GROUP BY session_code WHERE the_count > 1000  ORDER BY the_count DESC;

是否可以为 the_count 添加 where?

最佳答案

SELECT *, COUNT(session_code) AS the_count 
FROM cart_items 
GROUP BY session_code 
HAVING COUNT(session_code) > 1000 
ORDER BY COUNT(session_code) DESC;

关键是 HAVING 关键字,它允许在 GROUP BY 之后进行过滤。

关于mysql - 在这个 SQL 语句中的哪里添加一个 where?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18942764/

相关文章:

php - 两个或多个数组之间的计算

php - 当我尝试添加选项值时 SQL 空值

mysql - MySQL 每部电影的平均类型数

iphone - SQLite count(*) 如何得到结果?

jquery 计算带有属性的元素

datetime - mySql 对列求和并仅返回过去 10 分钟内包含 和 的条目

php - mySQL如何更改日期格式

mysql - 停用词和 MySQL bool 全文

java - 无法在两个方法内传递 try catch block 返回值

java - ResultSet.getArray(colName) 可以返回 null 吗?