SQLのgroup by

SQLを扱う場合、よく使われるのが「GROUP BY」です。GROUP BYは、指定したカラムでデータをグループ化して表示するためのものです。

例えば、以下のような投稿データがあったとします。

idtitlecategory
1WordPressの使い方WordPress
2PHPの基礎PHP
3MySQLの使い方MySQL
4WordPressの使い方WordPress
5Laravelの基礎Laravel

このデータを、categoryごとにグループ化して表示するには、以下のようなSQLを書きます。

SELECT category, COUNT(id) as count FROM wp_posts GROUP BY category;

このSQLを実行すると、以下のような結果が得られます。

categorycount
WordPress2
PHP1
MySQL1
Laravel1

このように、同じカテゴリーの投稿をグループ化して、その数を計算することができます。また、GROUP BYにはさまざまな関数を組み合わせることができるため、より高度な集計を行うこともできます。

WordPressでは、データベースにアクセスするための関数が用意されており、これらを利用することで簡単にSQLを実行することができます。以下は、上記のSQLをWordPressで実行する例です。

wordpressのSql実行例
global $wpdb;

$result = $wpdb->get_results("
    SELECT category, COUNT(id) as count
    FROM {$wpdb->prefix}posts
    GROUP BY category
");

foreach ($result as $row) {
    echo "{$row->category}: {$row->count} posts<br>";
}

このように、WordPressではSQLを簡単に扱うことができます。GROUP BYを使って、データの集計や分析を行う際には、ぜひWordPressの関数を活用してみてください。

カテゴリーSQL