sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQLとRails3に関連して、フィールド順に並べられた一意のレコードを見つけますか?

    探しているクエリは次のようになります:

    SELECT user_id, min(created_at) AS min_created_at
    FROM   cards
    WHERE  company_id = 1
    GROUP  BY user_id
    ORDER  BY min(created_at)
    

    テーブルuserに参加できます 結果にそのテーブルの列が必要な場合、それ以外の場合はクエリにも必要ありません。
    min_created_atが必要ない場合 SELECTで リスト、あなたはそれをそのままにしておくことができます。

    Rubyに簡単に翻訳できるはずです(私は得意ではありません)。

    ユーザー全体の記録を取得するには (私はあなたのコメントから導き出します):

    SELECT u.*,
    FROM   user u
    JOIN  (
        SELECT user_id, min(created_at) AS min_created_at
        FROM   cards
        WHERE  company_id = 1
        GROUP  BY user_id
        ) c ON u.id = c.user_id
    ORDER  BY min_created_at
    

    または:

    SELECT u.*
    FROM   user u
    JOIN   cards c ON u.id = c.user_id
    WHERE  c.company_id = 1
    GROUP  BY u.id, u.col1, u.col2, ..   -- You have to spell out all columns!
    ORDER  BY min(c.created_at)
    

    PostgreSQL 9.1以降では、次のように書くことができます。

    GROUP  BY u.id
    

    (MySQLのように)..提供されたid 主キーです。

    リリースノート を引用します :



    1. PDOを使用したヘルパー関数の挿入/更新

    2. mysqlテーブルに格納できる行数を制限するにはどうすればよいですか?

    3. Oracle SELECTTOP10レコード

    4. ListViewコントロールドラッグドロップイベントの処理