Class::DBI::Plugin::AggregateFunction - Class::DBIで集約関数を扱うためのモジュール
package MyData::CD; use base qw/Class::DBI/; use Class::DBI::Plugin::AggregateFunction; __PACKAGE__->mk_aggregate_function('sum'); __PACKAGE__->mk_aggregate_function( max => 'maximum'); package main; # SELECT MAX(price) FROM __TABLE__ $max = MyData::CD->maximum( 'price' ); # SELECT SUM(price) FROM __TABLE__ WHERE artist = 'foo' $sum = MyData::CD->sum( 'price', artist => 'foo', ); $sum = MyData::CD->sum( 'price', { price => {'>=', 1000}, });
Class::DBIを使ったテーブルで簡単に集約関数が使えるようになります。
mk_aggregate_functionメソッドを使って集約関数を追加します。 第1引数にSQLで利用する集約関数を、第2引数にメソッド名を指定します。 メソッド名が省略された場合は、集約関数名がメソッド名になります。
__PACKAGE__->mk_aggregate_function( 'max' );
または
__PACKAGE__->mk_aggregate_function( 'max' => 'maximum' );
集約関数の第1引数に、対象となるカラム名を記述します。
$max_price = MyData::CD->maximum( 'price' );
第2引数以降はClass::DBI::AbstractSearchのsearch_whereメソッドと同様の記述ができます。
# SELECT SUM(price) FROM __TABLE__ WHERE artist = 'foo' $total_price = MyData::CD->sum( 'price', 'artist' => 'foo', );
# SELECT SUM(price) FROM __TABLE__ WHERE price >= 1000 $total_price = MyData::CD->sum( 'price', { 'price' => {'>=', 1000}, });
ASAKURA Takuji <asakura.takuji+cpan@gmail.com>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Class::DBI::AbstractSearch, Class::DBI
To install Class::DBI::Plugin::AggregateFunction, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Class::DBI::Plugin::AggregateFunction
CPAN shell
perl -MCPAN -e shell install Class::DBI::Plugin::AggregateFunction
For more information on module installation, please visit the detailed CPAN module installation guide.