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

PG ::GROUPBY句のエラー

    GROUP BYを使用する場合 SELECTはできません GROUP BYのいずれにも含まれないフィールド または集計関数で使用されます。これはSQL標準で指定されていますが、データベースによっては、とにかくそのようなクエリを実行することを選択します。このようなクエリを実行する正しい方法は1つもないため、最初に見つけた行を選択して返す傾向があるため、結果は予期せず変化します。

    あなたが言おうとしているようです:

    「出版物ごとに、その出版物のTwitter、Facebook、LinkedInのカウントの合計を取得してください。」

    もしそうなら、あなたは書くことができます:

    SELECT publication,
           sum(twitter_count) AS twitter_sum,
           sum(linkedin_count) AS linkedin_sum,
           sum(facebook_count) AS facebook_sum
    FROM "articles" 
    WHERE "articles"."user_id" = 1 
    GROUP BY publication;
    

    それをActiveRecord/Railsに変換する...あなた次第ですが、私はそれを使用しません。あなたが書き込もうとしたものとほぼ同じように見えますが、ActiveRecordはそれを巧みに操っているようで、おそらくローカルで合計を実行しようとしています。



    1. MariaDBでのRTRIM()のしくみ

    2. ホスト「xxx.xx.xxx.xxx」はこのMySQLサーバーへの接続を許可されていません

    3. SELECTINでOracleパラメータを使用する際の問題

    4. 動的テーブル名を持つテーブルへのUPSERT