Intereting Posts
Можем ли мы назвать хранимую процедуру функцией? SQL-запрос … множественный выбор максимального значения. Нужна помощь Самый сложный способ создания разделенных запятыми строк из коллекции / массива / списка? Файл соленья слишком большой для загрузки Как вводить привязки для многозначного параметра в SQL Developer Топ 3 значения для группового запроса MS Access Основные характеристики данных с одним родительским объектом Вставка новой строки в таблицу базы данных sql Oridb sql обновление края? SQL AdvancedQuery Можем ли мы иметь несколько «WITH AS» в одном sql – Oracle SQL как запросить доступ для выбора целых записей, учитывая разные критерии Запрос Sql с уникальным значением столбца Количество рабочих элементов с наборами изменений или связанных элементов с наборами изменений Как я могу изменить столбец MySQL с VARCHAR на дату и преобразовать данные одновременно?

Как суммировать сгруппированный столбец в AREL

в Rails 3 / AREL

Model.group(:label).sum(:value) будет делать

 SELECT sum(value), label from model_table group by label 

Я пытаюсь найти способ AREL

 SELECT sum(value) from (select value, label from model_table group by label) 

который является Model.group(:label).map(&:value).sum используя ruby ​​для суммирования, как это сделать в SQL / AREL

Не уверен, что это имеет смысл. Ваш основной SQL недействителен:

 SELECT value, label FROM model_table GROUP BY label 

У вас не может быть GROUP BY без функции агрегации (например, SUM) в вашем выборе. Я думаю, что вы действительно хотите это:

 SELECT label, SUM(value) from model_table GROUP BY label 

Я прав? Чтобы сделать это в AREL, попробуйте следующее:

 relation = Model.select(:label). select(Model.arel_table[:value].sum.as("value_sum")). group(:label) relation.to_sql # => SELECT label, SUM("model_table"."impressions") AS value_sum FROM "model_table" GROUP BY label