質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

1657閲覧

[Rails] group('MONTH(:created_at)')でグループ化されたすべてのレコードを取得したい

s_diff

総合スコア107

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

1クリップ

投稿2019/06/18 08:40

###環境
Rails 4.2.6
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin17]

###知りたいこと
以下のようにグループ化したusersレコードをすべて取得したいのですが、

ruby

1User.all.group('MONTH(:created_at)')

出力を見ると各月のレコード一つずつしか取れません。

すべてを取得したいのですが、そのようなメソッドはありますか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/06/18 09:14

回答依頼いただいて申し訳ないのですがRubyほとんど分からないので、他の方に振っていただきたく。
s_diff

2019/06/18 09:45

何度も申し訳ありません!
guest

回答1

0

ベストアンサー

以下のようにグループ化したusersレコードをすべて取得したいのですが、

データベースでGROUP BYを行うと、それはその列で集計を行ってきて、集計結果を取得するという意味になって、「分類してすべてを取る」という用途に使えるものではありません。

Rails側で.group_byしたほうがいいでしょう。

ruby

1User.all.group_by { |record| record.created_at.strftime("%Y-%m") }

投稿2019/06/20 09:04

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

s_diff

2019/06/20 09:12

ありがとうございます。勉強になりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問