Как сделать это (PostgreSQL) с использованием Rails синтаксис ?:Rails - "заказ на" после "объединение всех"
SELECT fld1, fld2
FROM
(
SELECT fld1, fld2, count(*) as cnt FROM data WHERE fld2 not in('exclude1', 'exclude2') GROUP BY fld1, fld2 ORDER BY COUNT(*) DESC LIMIT 100
UNION ALL
SELECT fld1, fld2, count(*) as cnt FROM data WHERE fld2 in('exclude1', 'exclude2') GROUP BY fld1, fld2
) x
ORDER BY x.cnt DESC
я сделал следующее:
my_data = (Data.all(
:select => sel_clause,
:conditions => "data.fld2 not in %s" % [in_clause],
:group => grp_clause,
:order => 'count(*) desc',
:limit => @max_rows) <<
Data.all(
:select => sel_clause,
:conditions => "data.fld2 in %s" % [in_clause],
:group => grp_clause).order('cnt desc')
Проблема заключается в том, что это < < не является классическим «UNION ALL», но объединение двух массивов и «порядок» не может быть применено к результирующему массиву.