0
SQLで2つの列でグループ化するとき、私はいくつかの望ましくない結果を得ています。私はそれを必要とする方法を働かせるために2つの列で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のトップスポットすべてを取る1人の売り手がいます。 GROUP BY i.beat_id, i.producer
を試してみると、i.beat_id
だけでグルーピングしたのと全く同じ結果が得られます。
私の目的は一番売れている商品を持っていることですが、私はそれぞれの場所にユニークな売り手が欲しいです。誰かがこれを達成するのを手助けできますか?非常に事前
別の「上位N /グループ」の問題。 http://stackoverflow.com/questions/2129693/mysql-using-limit-within-group-by-to-get-n-results-per-groupには、開始するために必要な情報があります。 – Yuck