Module: DatastaxRails::StatsMethods
- Included in:
- Relation
- Defined in:
- lib/datastax_rails/relation/stats_methods.rb
Constant Summary collapse
- STATS_FIELDS =
{ 'sum' => 'sum', 'maximum' => 'max', 'minimum' => 'min', 'average' => 'mean', 'stddev' => 'stddev' }
Instance Method Summary collapse
-
#average(field) ⇒ Fixnum, Float
Calculates the average of the field listed.
-
#grouped_average(field) ⇒ Hash
Calculates the average of the field listed for a grouped query.
-
#grouped_maximum(field) ⇒ Hash
Calculates the sum of the field listed for a grouped query.
-
#grouped_minimum(field) ⇒ Hash
Calculates the minimum of the field listed for a grouped query.
-
#grouped_stddev(field) ⇒ Hash
Calculates the standard deviation of the field listed for a grouped query.
-
#grouped_sum(field) ⇒ Hash
Calculates the sum of the field listed for a grouped query.
-
#maximum(field) ⇒ Fixnum, Float
Calculates the maximum value of the field listed.
-
#minimum(field) ⇒ Fixnum, Float
Calculates the minimum of the field listed.
-
#stddev(field) ⇒ Fixnum, Float
Calculates the standard deviation of the field listed.
-
#sum(field) ⇒ Fixnum, Float
Calculates the sum of the field listed.
Instance Method Details
#average(field) ⇒ Fixnum, Float
Calculates the average of the field listed. Field must be indexed as a number.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datastax_rails/relation/stats_methods.rb', line 45 %w(sum maximum minimum average stddev).each do |op| define_method(op) do |field| calculate_stats(field) @stats[field] ? @stats[field][STATS_FIELDS[op]] : 0 end define_method("grouped_#{op}") do |field| self.op unless @group_value calculate_stats(field) values = {} @stats[field]['facets'][@group_value].each do |k, v| values[k] = v[STATS_FIELDS[op]] end values end end |
#grouped_average(field) ⇒ Hash
Calculates the average of the field listed for a grouped query.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datastax_rails/relation/stats_methods.rb', line 45 %w(sum maximum minimum average stddev).each do |op| define_method(op) do |field| calculate_stats(field) @stats[field] ? @stats[field][STATS_FIELDS[op]] : 0 end define_method("grouped_#{op}") do |field| self.op unless @group_value calculate_stats(field) values = {} @stats[field]['facets'][@group_value].each do |k, v| values[k] = v[STATS_FIELDS[op]] end values end end |
#grouped_maximum(field) ⇒ Hash
Calculates the sum of the field listed for a grouped query.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datastax_rails/relation/stats_methods.rb', line 45 %w(sum maximum minimum average stddev).each do |op| define_method(op) do |field| calculate_stats(field) @stats[field] ? @stats[field][STATS_FIELDS[op]] : 0 end define_method("grouped_#{op}") do |field| self.op unless @group_value calculate_stats(field) values = {} @stats[field]['facets'][@group_value].each do |k, v| values[k] = v[STATS_FIELDS[op]] end values end end |
#grouped_minimum(field) ⇒ Hash
Calculates the minimum of the field listed for a grouped query.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datastax_rails/relation/stats_methods.rb', line 45 %w(sum maximum minimum average stddev).each do |op| define_method(op) do |field| calculate_stats(field) @stats[field] ? @stats[field][STATS_FIELDS[op]] : 0 end define_method("grouped_#{op}") do |field| self.op unless @group_value calculate_stats(field) values = {} @stats[field]['facets'][@group_value].each do |k, v| values[k] = v[STATS_FIELDS[op]] end values end end |
#grouped_stddev(field) ⇒ Hash
Calculates the standard deviation of the field listed for a grouped query.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datastax_rails/relation/stats_methods.rb', line 45 %w(sum maximum minimum average stddev).each do |op| define_method(op) do |field| calculate_stats(field) @stats[field] ? @stats[field][STATS_FIELDS[op]] : 0 end define_method("grouped_#{op}") do |field| self.op unless @group_value calculate_stats(field) values = {} @stats[field]['facets'][@group_value].each do |k, v| values[k] = v[STATS_FIELDS[op]] end values end end |
#grouped_sum(field) ⇒ Hash
Calculates the sum of the field listed for a grouped query.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datastax_rails/relation/stats_methods.rb', line 45 %w(sum maximum minimum average stddev).each do |op| define_method(op) do |field| calculate_stats(field) @stats[field] ? @stats[field][STATS_FIELDS[op]] : 0 end define_method("grouped_#{op}") do |field| self.op unless @group_value calculate_stats(field) values = {} @stats[field]['facets'][@group_value].each do |k, v| values[k] = v[STATS_FIELDS[op]] end values end end |
#maximum(field) ⇒ Fixnum, Float
Calculates the maximum value of the field listed. Field must be indexed as a number.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datastax_rails/relation/stats_methods.rb', line 45 %w(sum maximum minimum average stddev).each do |op| define_method(op) do |field| calculate_stats(field) @stats[field] ? @stats[field][STATS_FIELDS[op]] : 0 end define_method("grouped_#{op}") do |field| self.op unless @group_value calculate_stats(field) values = {} @stats[field]['facets'][@group_value].each do |k, v| values[k] = v[STATS_FIELDS[op]] end values end end |
#minimum(field) ⇒ Fixnum, Float
Calculates the minimum of the field listed. Field must be indexed as a number.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datastax_rails/relation/stats_methods.rb', line 45 %w(sum maximum minimum average stddev).each do |op| define_method(op) do |field| calculate_stats(field) @stats[field] ? @stats[field][STATS_FIELDS[op]] : 0 end define_method("grouped_#{op}") do |field| self.op unless @group_value calculate_stats(field) values = {} @stats[field]['facets'][@group_value].each do |k, v| values[k] = v[STATS_FIELDS[op]] end values end end |
#stddev(field) ⇒ Fixnum, Float
Calculates the standard deviation of the field listed. Field must be indexed as a number.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datastax_rails/relation/stats_methods.rb', line 45 %w(sum maximum minimum average stddev).each do |op| define_method(op) do |field| calculate_stats(field) @stats[field] ? @stats[field][STATS_FIELDS[op]] : 0 end define_method("grouped_#{op}") do |field| self.op unless @group_value calculate_stats(field) values = {} @stats[field]['facets'][@group_value].each do |k, v| values[k] = v[STATS_FIELDS[op]] end values end end |
#sum(field) ⇒ Fixnum, Float
Calculates the sum of the field listed. Field must be indexed as a number.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/datastax_rails/relation/stats_methods.rb', line 45 %w(sum maximum minimum average stddev).each do |op| define_method(op) do |field| calculate_stats(field) @stats[field] ? @stats[field][STATS_FIELDS[op]] : 0 end define_method("grouped_#{op}") do |field| self.op unless @group_value calculate_stats(field) values = {} @stats[field]['facets'][@group_value].each do |k, v| values[k] = v[STATS_FIELDS[op]] end values end end |