GROUP BY

Posted by muchag | CakePHP | 2011-06-30 (木) 20:02:03

GROUP BY は ‘group’ なんだそうな。
1つ1つルールがあるので
覚えていかねば・・・。

【環境】
[CakePHP] 1.3.10
[MySQL] 5.1.41
機能

GROUP BY カラム名
としてやることで当該カラムに重複して存在するデータのレコードをまとめてくれる。

DISTINCT 句と似ているが、GROUP BY は集計関数を併用できる。

詳細は解説サイト参照。
 

基本

CakePHP で GROUP BY を利用するには
find メソッドで第2引数に設定する $options の ‘group’ に設定する。

  1. $options = array(
  2.     'group' => array(
  3.         'User.family_name',
  4.     ),
  5. );

 

COUNT

COUNT 句を併用するなら

  1. $options = array(
  2.     'group' => array(
  3.         'User.family_name',
  4.     ),
  5.     'fields' => array(
  6.         'COUNT(*) AS "num"',
  7.     ),
  8. );

 

ORDER BY

更に、この COUNT 結果に ORDER BY 句を適用するなら

  1. $options = array(
  2.     'group' => array(
  3.         'User.family_name',
  4.     ),
  5.     'fields' => array(
  6.         'COUNT(*) AS "num"',
  7.     ),
  8.     'order' => array(
  9.         'num DESC',
  10.     ),
  11. );
CakePHP | 2011-06-30 (木) 20:02:03 |

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment