によってgroupping:(もしあれば)私はtable1.id
によってgrouppingとtable2.id
によってgrouppingの間で差があるかを理解しようとしていますMySQLのGROUP BYとINNER JOINは - 次のクエリを考えると結合フィールド
SELECT COUNT(table1.someField), COUNT(table2.someField)
FROM table1
INNER JOIN table2 ON table2.id = table1.id
GROUP BY table1.id
を。一言で言えば、2つのテーブルをX=Y
に接続すると、X
でグルーピングし、Y
でグルーピングしたときの違いは何ですか?それでおしまい。
現実世界の例 - 非常に簡単:テーブルtransaction
は、トランザクション情報(支払った金額、日付など)、およびテーブルを保持しているtransaction_product
は、製品がどのトランザクションに含まれていたかに関する情報を保持しています。
たとえば、トランザクション番号1に商品番号1,2および3などが含まれている可能性があります(テーブル関係は明らかに1対多です)。
問題:私はトランザクションごとにどれだけ多くの商品が支払われたかを知る必要があります。私は選択肢BY 2 GROUPの間に差があるかどうかを知る必要があり
SELECT
`transaction`.id,
SUM(`transaction`.transaction_amount) AS total_amount,
COUNT(`transaction_product`.product_id) AS number_of_products
FROM `transaction`
INNER JOIN `transaction_product` ON `transaction_product`.transaction_id = `transaction`.id
GROUP BY [`transaction`.id [OR] `transaction_product`.transaction_id]
:これは、代替案、GROUP BYの両方を含むクエリです。このケースでは、ドキュメント内でGROUP BYの動作に関する関連情報を見つけることができませんでした。したがって、問題を明確にするための助けがあれば大いに感謝します。