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

UPDATEFROM句のGROUPBY

    UPDATEステートメントはGROUPBYをサポートしていません。ドキュメントを参照してください。 t1をt2の対応する行で更新しようとしている場合は、次のようなWHERE句を使用する必要があります。

    UPDATE table t1 SET column1=t2.column1
    FROM   table t2
    JOIN   table t3 USING (column2)
    WHERE  t1.column2=t2.column2;
    

    t1に割り当てる前にt2/t3の行をグループ化する必要がある場合は、次のようなサブクエリを使用する必要があります。

    UPDATE table t1 SET column1=sq.column1
    FROM  (
       SELECT t2.column1, column2
       FROM   table t2
       JOIN   table t3 USING (column2)
       GROUP  BY column2
       ) AS sq
    WHERE  t1.column2=sq.column2;
    

    t2.column1がGROUPBYステートメントに含まれていないために機能しないように定式化されていますが(単純な列参照ではなく集計関数である必要があります)。

    それ以外の場合、ここで正確に何をしようとしていますか?




    1. Oracleセッションの言語を変更する方法

    2. SQL Server(T-SQL)で現在のログイン名を返す

    3. ISNULL()に相当するPostgreSQLとは何ですか

    4. パターンを使用した検索操作のためのMySQLでのLikeの使用