module Aggrobot::SQLFunctions::Common

Public Instance Methods

asc(attr) click to toggle source
# File lib/aggrobot/sql_functions/common.rb, line 11
def asc(attr)
  "#{attr} asc"
end
average(attr, rounding = self.precision)
Alias for: avg
avg(attr, rounding = self.precision) click to toggle source

returns ROUNDED average of attr, with precision(ROUNDING DIGITS)

# File lib/aggrobot/sql_functions/common.rb, line 36
def avg(attr, rounding = self.precision)
  "ROUND(AVG(#{attr}), #{rounding})"
end
Also aliased as: average
count(attr = '*') click to toggle source
# File lib/aggrobot/sql_functions/common.rb, line 15
def count(attr = '*')
  "COUNT(#{attr})"
end
desc(attr) click to toggle source
# File lib/aggrobot/sql_functions/common.rb, line 7
def desc(attr)
  "#{attr} desc"
end
divide(attr, divider, rounding = self.precision) click to toggle source

returns ROUND of attr/divider, with precision(self.precision)

# File lib/aggrobot/sql_functions/common.rb, line 59
def divide(attr, divider, rounding = self.precision)
  "ROUND(#{attr}/#{divider}, #{rounding})"
end
group_collect(attr) click to toggle source

GROUP_CONCAT: A SQL function which returns a concatenated string group_collect returns concatenated string of distinct attr

# File lib/aggrobot/sql_functions/common.rb, line 44
def group_collect(attr)
  "GROUP_CONCAT(DISTINCT #{attr})"
end
max(attr) click to toggle source
# File lib/aggrobot/sql_functions/common.rb, line 23
def max(attr)
  "MAX(#{attr})"
end
min(attr) click to toggle source
# File lib/aggrobot/sql_functions/common.rb, line 27
def min(attr)
  "MIN(#{attr})"
end
multiply(attr, multiplier, rounding = self.precision) click to toggle source

returns ROUND of multipliers, with precision(self.precision)

# File lib/aggrobot/sql_functions/common.rb, line 54
def multiply(attr, multiplier, rounding = self.precision)
  "ROUND(#{attr}*#{multiplier}, #{rounding})"
end
percent(total, attr = count, rounding = self.precision) click to toggle source

returns percentage based on ROUND SQL function, with precision(ROUNDING DIGITS)

# File lib/aggrobot/sql_functions/common.rb, line 49
def percent(total, attr = count, rounding = self.precision)
  total == 0 ? "0" : "ROUND((#{attr}*100.0)/#{total}, #{rounding})"
end
sum(attr = count) click to toggle source
# File lib/aggrobot/sql_functions/common.rb, line 31
def sum(attr = count)
  "SUM(#{attr})"
end
unique_count(attr = '*') click to toggle source
# File lib/aggrobot/sql_functions/common.rb, line 19
def unique_count(attr = '*')
  "COUNT(DISTINCT #{attr})"
end