aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/expressions.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel/expressions.rb')
-rw-r--r--lib/arel/expressions.rb23
1 files changed, 15 insertions, 8 deletions
diff --git a/lib/arel/expressions.rb b/lib/arel/expressions.rb
index fa18f15b67..717cf412ee 100644
--- a/lib/arel/expressions.rb
+++ b/lib/arel/expressions.rb
@@ -4,24 +4,31 @@ module Arel
Nodes::Count.new [self], distinct
end
- def sum
- Nodes::Sum.new [self], Nodes::SqlLiteral.new('sum_id')
+ def sum(alias_as = "sum_id")
+ Nodes::Sum.new [self], node_alias(alias_as)
end
- def maximum
- Nodes::Max.new [self], Nodes::SqlLiteral.new('max_id')
+ def maximum(alias_as = "max_id")
+ Nodes::Max.new [self], node_alias(alias_as)
end
- def minimum
- Nodes::Min.new [self], Nodes::SqlLiteral.new('min_id')
+ def minimum(alias_as = "min_id")
+ Nodes::Min.new [self], node_alias(alias_as)
end
- def average
- Nodes::Avg.new [self], Nodes::SqlLiteral.new('avg_id')
+ def average(alias_as = "avg_id")
+ Nodes::Avg.new [self], node_alias(alias_as)
end
def extract field
Nodes::Extract.new [self], field
end
+
+ private
+
+ def node_alias(alias_as)
+ alias_as.nil? ? nil : Nodes::SqlLiteral.new(alias_as)
+ end
+
end
end