私は2つのテーブルinvoices
とproducts
を持っています。関連するレコードの数でグループ分けする方法
invoices: store,
products: id, invoice_id
商品の数量ごとにいくつの請求書が存在するかを示す結果セットが必要です。
I店Aに3つの製品それぞれに2枚の請求書を持っている場合、私は意味し、それはStore: A, Products qty: 3, Number of invoices (with three products): 2
別の例を示すであろう。
| store | products_qty | count |
| A | 1 | 10 |
| A | 2 | 7 |
| A | 5 | 12 |
| B | 5 | 12 |
意味、店舗Aは、1つの製品と10枚の請求書を有しています。私のような何かを試してみた5つの製品...
との2つの製品、および12と7:私のグループの原因は有効ではありませんが
SELECT store, count(p.id), count(i.id) FROM invoices i
LEFT JOIN products p ON (p.invoice_id = i.id)
GROUP BY price, count(i.id)
、それはInvalid use of group function
を示しています。
どうすればこの問題を解決できますか?
p.id' BYちょうど 'GROUP - あなたが言うのcuz:'ストアAは、1つの製品で10枚の請求書を持っています。 2つの製品で7個、5個の製品で12個」と表示されます。 – num8er
、私はそれらをグループ化したい、私はそれをより明確にするために質問を修正各請求書の行を与えるだろう。 –
いいえSQL技術と恋をして、私はinsert/update/deleteイベントを捕まえ、 'store_statistics'コレクションに必要な情報を集約するアグリゲータプロセスを書いていきます。 )mysqlトリガでもこれをやる方が良いと思う) – num8er