Mysql 如何基于计数返回项目

Mysql 如何基于计数返回项目,mysql,Mysql,我试图从订单表中返回属于订单的最有天赋的物品。目前,这将返回任何已赠送的物品,我希望它在返回之前检查该物品是否已赠送多次,以检查该礼物是否一次性,并且它实际上是一种流行的礼物选择 这就是我目前拥有的: SELECT Item_Type, Item_Desc, item_Cost FROM rbickers.Item LEFT join rbickers.Basket ON Item.Item_id = Basket.theItem_id LEFT join rbickers.order

我试图从
订单
表中返回属于
订单
的最有天赋的物品。目前,这将返回任何已赠送的物品,我希望它在返回之前检查该物品是否已赠送多次,以检查该礼物是否一次性,并且它实际上是一种流行的礼物选择

这就是我目前拥有的:

SELECT Item_Type, Item_Desc, item_Cost 
FROM rbickers.Item

LEFT join rbickers.Basket 
ON Item.Item_id = Basket.theItem_id

LEFT join rbickers.order
on basket.ord_ID = Order.order_ID

LEFT join rbickers.Session 
on Order.Session_id = Session.Ses_id 

WHERE Order.order_isGift = "true"
order by item_type

你有没有想过换一张桌子,把礼物当作礼物来计算?然后,您可以在
Times\u Gifted
上进行排序,这样可以在后端保存一些操作

否则,如果是一次性计算,可能是这样的

SELECT count(*) FROM `tablename`
根据您的需要配备适当的其他过滤器(从中抄袭)


祝你好运

你有没有想过另设一张桌子,简单地按礼物的数量来计算礼物的数量?然后,您可以在
Times\u Gifted
上进行排序,这样可以在后端保存一些操作

否则,如果是一次性计算,可能是这样的

SELECT count(*) FROM `tablename`
根据您的需要配备适当的其他过滤器(从中抄袭)

祝你好运

您可能正在寻找并拥有:

SELECT Item_Type, Item_Desc, Item_Cost 
FROM Item
JOIN Basket ON theItem_id = Item_ID
JOIN Order ON Order_ID = Ord_ID
WHERE Order_isGift = "true"
GROUP BY Item_ID
HAVING count(1) > 1
您可能正在寻找并拥有:

SELECT Item_Type, Item_Desc, Item_Cost 
FROM Item
JOIN Basket ON theItem_id = Item_ID
JOIN Order ON Order_ID = Ord_ID
WHERE Order_isGift = "true"
GROUP BY Item_ID
HAVING count(1) > 1

您需要将每件物品的赠品次数相加,先将结果排序为我的最大计数,然后只取第一行:

SELECT Item_Type, Item_Desc, item_Cost, sum(Basket.qty) as total_ordered
FROM rbickers.Item
LEFT join rbickers.Basket ON Item.Item_id = Basket.theItem_id
LEFT join rbickers.order on basket.ord_ID = Order.order_ID
LEFT join rbickers.Session on Order.Session_id = Session.Ses_id 
WHERE Order.order_isGift = "true"
GROUP BY 1, 2, 3
ORDER BY sum(Basket.qty) DESC
LIMIT 1;

您需要将每件物品的赠品次数相加,先将结果排序为我的最大计数,然后只取第一行:

SELECT Item_Type, Item_Desc, item_Cost, sum(Basket.qty) as total_ordered
FROM rbickers.Item
LEFT join rbickers.Basket ON Item.Item_id = Basket.theItem_id
LEFT join rbickers.order on basket.ord_ID = Order.order_ID
LEFT join rbickers.Session on Order.Session_id = Session.Ses_id 
WHERE Order.order_isGift = "true"
GROUP BY 1, 2, 3
ORDER BY sum(Basket.qty) DESC
LIMIT 1;

你能提供一个模式吗?这是我的模式的图形表示,我希望这能有所帮助。你说的天才是指买来的。天才是什么意思。是的,对不起。不,它的工作原理与亚马逊礼品服务类似。如果该商品被选为礼物,那么它是礼品包装的,在实际的商品包装中没有发票等。你能提供一个模式吗?这是我的模式的图形表示,我希望这能有所帮助。你说的天才是指买来的。天才是什么意思。是的,对不起。不,它的工作原理与亚马逊礼品服务类似。如果选择该项目作为礼物,则该项目在实际项目包装中没有发票等。这将在MySQL中起作用,但在使用
group by
时,应确保
select
子句中的所有非聚合字段也在
group by
子句中使用。并不是每个数据库引擎都像MySQL那样宽容。这在MySQL中可以工作,但是当使用
GROUPBY
时,您应该确保
select
子句中的所有非聚合字段也在
GROUPBY
子句中使用。并非每个数据库引擎都像MySQL那样宽容。