Rails 3.2 アプリを PostgreSQL で実行しており、ビューに表示したいデータがいくつかあります。これらのデータは、次の構造でデータベースに保存されています。
+----+--------+------------------+--------------------+
| id | name | sched_start_date | task |
+----+--------+------------------+--------------------+
| 1 | "Ben" | 2013-03-01 | "Check for debris" |
+----+--------+------------------+--------------------+
| 2 | "Toby" | 2013-03-02 | "Carry out Y1.1" |
+----+--------+------------------+--------------------+
| 3 | "Toby" | 2013-03-03 | "Check oil seals" |
+----+--------+------------------+--------------------+
名前ごとにタスクのリストを表示し、名前がASC
最初のものから順に並べられるようにしsched_start_date
たいと思います。これは次のようになります...
ベン 2013-03-01 – 破片のチェック トビー 2013-03-02 – Y1.1 の実施 2013-03-03 – オイルシールのチェック
私が取り始めたアプローチは、一意の名前のクエリをsched_start_date ASC
実行し、それらを .
一意の名前のリストを取得するには、SQL は次のようになります。
select *
from (
select distinct on (name) name, sched_start_date
from tasks
) p
order by sched_start_date;
これが正しいアプローチ (一意の名前をクエリしてから、すべてのタスクに対して別のクエリを実行する) であるかどうか、またはレールのより良い方法があるかどうかを知りたいです。