在SQL中按两列分组时,我得到了一些不需要的结果,这是代码;
SELECT i.*, o.mdate, u.name as producer_name, b.price as beat_price, COUNT(i.id) as sold_count
FROM #__mfs_items AS i
INNER JOIN #__mfs_users AS mu
ON i.producer = mu.id
INNER JOIN #__users AS u
ON i.producer = u.id
INNER JOIN #__mfs_beats AS b
ON i.beat_id = b.id
INNER JOIN #__mfs_orders AS o
ON i.order_number = o.order_number
GROUP BY i.producer
ORDER BY COUNT(*) DESC
LIMIT 10
现在它做的是获得最畅销的商品并将其分组给卖家。不幸的是,这会收集每个卖家的每件商品的销售情况并将其合计,这不是我想要的。当我尝试GROUP BY i.beat_id
时,这给了我想要的结果但是有一个卖家占据了所有10个顶点。当我尝试GROUP BY i.beat_id, i.producer
时 - 这给了我与i.beat_id
单独分组完全相同的结果。
我的目标是拥有畅销商品,但我希望每个商品都有独特的卖家。有人可以帮助我实现这个目标吗?
非常感谢
答案 0 :(得分:0)
在对组进行分组时,您应该按条件包含所有选择列,而不是单个列。