Redshiftの学生テーブルに生徒IDの別のマークのみを追加するにはどうすればよいですか? OracleでRedshift:パーティション上の異なる値の合計
この作品、赤方偏移で
SELECT SUM(distinct marks) OVER (PARTITION BY studentid) FROM student;
しかし、このdoesntの仕事!私はSELECTステートメントだけで結合せずにこれを解決したい。
Redshiftの学生テーブルに生徒IDの別のマークのみを追加するにはどうすればよいですか? OracleでRedshift:パーティション上の異なる値の合計
この作品、赤方偏移で
SELECT SUM(distinct marks) OVER (PARTITION BY studentid) FROM student;
しかし、このdoesntの仕事!私はSELECTステートメントだけで結合せずにこれを解決したい。
ウィンドウ機能が利用できない場合は、JOIN
または相関クエリを使用する必要があります。
相関クエリ(のみ選択)
SELECT t.* ,
(SELECT sum(distinct marks) FROM student s
WHERE s.studentid = t.studentid) as stud_sum
FROM student t
ウィンドウ関数は、赤方偏移で&有力有名です。
Redshift DBはPostgresのフォークであるため、Postgres 8.xでサポートされているほとんどのWindows関数は柔軟に使用できます。所与のSQLのための
、あなたはSQLが赤方偏移で動作するはず何か
SELECT studentid, SUM(distinct marks)
OVER (PARTITION BY studentid) FROM student;
を書くことができます。すべてのウィンドウ機能のサポートについてはdocumentationです:
これは機能しません。現在、redshiftウィンドウ関数は、あなたがリンクを提供したドキュメンテーションに見られるように、 'DISTINCT'、' ALL'または 'expression'だけをサポートしていません。 – Merlin