mysql - 如何在mysql中执行查询以获得最大总和?

标签 mysql sql max having

我有这张表:

cart_item_id (primary key)
user_id (int)
shop_item_id (int)
quantity (int)
is_checked_out (tinyint)

我想从这个表中获取最畅销的商品,即 checkout 数量最多的商品,我开发了这个查询,但它返回了错误:

SELECT `shop_item_id`
FROM `cart` 
WHERE `is_checked_out` = 1 
group by `shop_item_id` 
having sum(`quantity`) > max( 
select sum(`quantity`) 
from `cart` 
where `is_checked_out` = 1 
group by `shop_item_id` ) 

错误是:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select sum(`quantity`) from `cart` where `is_checked_out` = 1 group by `shop_ite' at line 1 

那么我的查询有什么问题呢?

最佳答案

按数量排序,只取第一条记录

SELECT `shop_item_id`, sum(`quantity`) 
FROM `cart` 
WHERE `is_checked_out` = 1 
group by `shop_item_id` 
order by sum(`quantity`) desc
limit 1

关于mysql - 如何在mysql中执行查询以获得最大总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28045878/

相关文章:

php - fopen php mysql import - sql 中的空行

sql - 如何确定 SQL 表(雪花)中出现次数最多的值并考虑关系?

mysql - 如何在sql中获取表名和一列?

sql - sqlite中的Where函数

MySQL:将 MAX 方法与 GROUP BY 子句结合使用错误 1055

mysql - 如何选择最大值并返回多个条目

php - 如何在多选框的选择框中添加复选框bo0x

mysql - 我无法运行这个查询,但是当我在 phpmyadmin 中模拟它时,它返回行

java - 使用eclipse 或netbeans 进行开发时,是否使用phpmyadmin 来管理mysql?

php - 对具有多个连接和多对多关系的查询的结果进行分组