row y
には2つの理由があります 返されなかったのは、次の条件によるものです:
-
b.start > a.start
行がそれ自体と結合することは決してないことを意味します - GROUP BYは、
APP_nm
ごとに1つのレコードのみを返します。 値ですが、すべての行の値は同じです。
ただし、クエリにはさらに論理エラーがあり、正常に処理されません。たとえば、「新しい」セッションがいつ開始されるかをどのようにして知ることができますか?
求めるロジックは、DISTINCT ON
を使用して通常のPostgreSQLで実現できます。 関数。特定の列の入力値ごとに1行を表示します。ただし、DISTINCT ON
Redshiftではサポートされていません。
いくつかの潜在的な回避策:Redshiftの機能と同様の特徴
求める出力は、プログラミング言語(結果をループして変数を格納できる)を使用すると簡単ですが、SQLクエリ(結果の行を操作するように設計されている)に適用するのは困難です。データを抽出し、単純なスクリプト(Pythonなど)で実行して、目的の開始と終了の組み合わせを出力することをお勧めします。