Ilnar25
@Ilnar25

Как из базы получить сумму определенных полей?

Имею такую таблицу
create_table "orders", force: :cascade do |t|
  t.bigint "user_id"
  t.bigint "store_id"
  t.string "recipient_adress"
  t.string "sender_coordinates", default: [], array: true
  t.string "recipient_coordinates", default: [], array: true
  t.datetime "created_at"
  t.boolean "rendition", default: false
  t.float "shipping"
  t.float "total_price"
  t.index ["store_id"], name: "index_orders_on_store_id"
  t.index ["user_id"], name: "index_orders_on_user_id"
end

Как для каждого дня получить информацию по выручке?
Подробно: как получить одним запросом сумму значений стоимости(:total_price), отсортированные по каждому дню(:created_at). Для поиска имеем значение для поля(:store_id). Примерно вот так [{created_at: значение, sum: значение}, {......}]. Желательно на чистом SQL. Можете помощь?
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
LaRN
@LaRN
Senior Developer
select created_at, sum(total_price)
from orders
where store_id = ?
group by created_at
order by created_at desc

Только есть нюанс, если в поле created_at дата со временем, то для группировки нужно очищать дату от времени.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы