groupBy()
グループ バイ(Eloquent ORM とデータベース操作)
意味 クエリ結果のグループ化
groupBy()とは?
groupBy()メソッドは、データベースクエリの結果を特定のカラムでグループ化するためのEloquent ORMのメソッドです。これを使うと、同じ値を持つレコードをまとめて、集計関数と組み合わせて使用することができます。
groupBy()の具体的な使い方
注文ステータス別の集計
// 注文をステータスでグループ化し、各ステータスの注文数を取得
$orders = DB::table('orders')
->groupBy('status')
->selectRaw('status, COUNT(*) as count')
->get();
// 結果の表示
foreach ($orders as $order) {
echo "ステータス: {$order->status}, 件数: {$order->count}\n";
}
👇出力結果
ステータス: pending, 件数: 10
ステータス: processing, 件数: 5
ステータス: completed, 件数: 20
...
この例では、groupBy()メソッドを使用して、注文テーブルから注文のステータスごとにグループ化し、各ステータスの注文数を取得しています。selectRaw()メソッドを使用して、ステータスとそのカウント数を選択しています。結果として、各ステータスとそのステータスの注文数のリストが返されます。
カテゴリ別の商品の平均価格
// 商品をカテゴリでグループ化し、各カテゴリの平均価格を計算
$products = DB::table('products')
->groupBy('category')
->selectRaw('category, AVG(price) as avg_price')
->get();
// 結果の表示
foreach ($products as $product) {
echo "カテゴリ: {$product->category}, 平均価格: ¥" . number_format($product->avg_price, 2) . "\n";
}
👇出力結果
カテゴリ: 電子機器, 平均価格: ¥50,000.00
カテゴリ: 家具, 平均価格: ¥30,000.00
カテゴリ: 衣類, 平均価格: ¥5,000.00
...
この例では、groupBy()メソッドを使用して、商品テーブルから商品をカテゴリごとにグループ化し、各カテゴリの平均価格を計算しています。selectRaw()メソッドを使用して、カテゴリと平均価格(AVG関数を使用)を選択しています。結果として、各カテゴリとそのカテゴリの商品の平均価格のリストが返されます。
groupBy()に関するよくある質問
groupBy()が学べる書籍の紹介
「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、LaravelのgroupBy()やwhereIn()、lazyById()、replicate()、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。
よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。
HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。
Laravelを学べる「プログラミング単語帳」アプリ
プログラミング単語帳がアプリになりました!Laravelはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。
収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。
いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。
2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!
2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!