无法通过两列进行SQL分组,以便按照我需要的方式工作

时间:2011-12-09 14:47:22

标签: sql group-by

在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单独分组完全相同的结果。

我的目标是拥有畅销商品,但我希望每个商品都有独特的卖家。有人可以帮助我实现这个目标吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

在对组进行分组时,您应该按条件包含所有选择列,而不是单个列。