Module: Sequel::Tablefunc

Defined in:
lib/sequel/extensions/tablefunc.rb,
lib/sequel/extensions/tablefunc/version.rb

Constant Summary collapse

VERSION =
"0.1.0"

Instance Method Summary collapse

Instance Method Details

#crosstab(categories_dataset, type: 'text', cat_name: 'category') ⇒ Object



6
7
8
9
10
11
# File 'lib/sequel/extensions/tablefunc.rb', line 6

def crosstab(categories_dataset, type: 'text', cat_name: 'category')
  data_sql = tablefunc_quote(self.sql)
  categories_sql = tablefunc_quote(categories_dataset.sql)
  categories_types = DB[categories_dataset].all.map(&:values).flatten.map{|i| "\"#{i}\" #{type}"}.join(', ')
  DB.from(Sequel.lit("crosstab('#{data_sql}','#{categories_sql}') as ct(#{cat_name} text, #{categories_types})"))
end