Changeset 2459
- Timestamp:
- 05/29/08 17:22:32 (21 months ago)
- Location:
- branches/release-39/lib/MT
- Files:
-
- 2 modified
-
Object.pm (modified) (2 diffs)
-
ObjectDriver/Driver/DBI.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/release-39/lib/MT/Object.pm
r2453 r2459 707 707 sub sum_group_by { shift->_proxy('sum_group_by', @_) } 708 708 sub avg_group_by { shift->_proxy('avg_group_by', @_) } 709 sub max_group_by { shift->_proxy('max_group_by', @_) } 709 710 sub remove_all { shift->_proxy('remove_all', @_) } 710 711 … … 2041 2042 avg => 'property_to_average' }) 2042 2043 2044 =head2 Max by Group 2045 2046 =over 4 2047 2048 =item * Class->max_group_by() 2049 2050 =back 2051 2052 Like the count_group_by method, you can select objects from a MT::Object 2053 store using a SQL 'MAX' operator. 2054 2055 my $iter = MT::Foo->max_group_by($terms, {%args, group => $group_exprs, 2056 max => 'column_name' }) 2057 2043 2058 =head2 Sum by Group 2044 2059 -
branches/release-39/lib/MT/ObjectDriver/Driver/DBI.pm
r2202 r2459 116 116 $args->{direction} = 'descend' unless exists $args->{direction}; 117 117 $driver->_do_group_by("AVG($avg_column) AS avg_$avg_column", @_); 118 } 119 120 sub max_group_by { 121 my $driver = shift; 122 my ($class, $terms, $args) = @_; 123 124 my $max_column = delete $args->{max}; 125 return unless $max_column; 126 $max_column = $driver->_decorate_column_name($class, $max_column); 127 $args->{sort} = "max_$max_column" unless exists $args->{sort}; 128 $args->{direction} = 'descend' unless exists $args->{direction}; 129 $driver->_do_group_by("MAX($max_column) AS max_$max_column", @_); 118 130 } 119 131
