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

SQLiteからPostgres(Heroku)GROUP BY

    DISTINCT ONを使用して機能的なソリューションに到達しました :

    @messages = Message.select("DISTINCT ON (messages.conversation_id) * ")
                       .where("messages.sender_id = (?) OR messages.recipient_id = (?)", current_user.id, current_user.id)
                       .group("messages.conversation_id, messages.updated_at, messages.id, messages.sender_id, messages.recipient_id, messages.sender_deleted, messages.recipient_deleted, messages.body, messages.read_at, messages.ancestry, messages.ancestry_depth, messages.created_at")
    

    ただし、これはSQLiteでは機能しません。開発でSQLiteコードを使用し、本番環境(Heroku)でPostgresコードを使用するのではなく、Postgresをダウンロードして直接使用することをお勧めします。



    1. MySQLで選択されていない列でグループ化できるのはなぜですか

    2. ADO.NETプロバイダーの「Oracle.ManagedDataAccess.Client」がマシンまたはアプリケーションの構成ファイルに登録されていないか、ロードできませんでした

    3. MySQLでテーブルの一意の制約を表示するにはどうすればよいですか?

    4. SQL Server:oracle keepdensity_rankクエリを模倣する方法は?