一意でない重複のみを表示するクエリを作成しようとしています。考慮されるすべてのレコードを表示するクエリを既に作成しました。
SELECT tbl_tm.title, lp_index.starttime, musicsound.archnr
FROM tbl_tm
INNER JOIN musicsound on tbl_tm.fk_tbl_tm_musicsound = musicsound.pk_musicsound
INNER JOIN lp_index ON musicsound.pk_musicsound = lp_index.fk_index_musicsound
INNER JOIN plan ON lp_index.fk_index_plan = plan.pk_plan
WHERE tbl_tm.FK_tbl_tm_title_type_music = '22' AND plan.airdate
BETWEEN to_date ('15-01-13') AND to_date('17-01-13')
GROUP BY tbl_tm.title, lp_index.starttime, musicsound.archnr
HAVING COUNT (tbl_tm.title) > 0;
対応する結果セットは次のようになります。
title starttime archnrr
============================================
Pumped up kicks 05:05:37 0616866
People Help The People 05:09:13 0620176
I can't dance 05:12:43 0600109
Locked Out Of Heaven 05:36:08 0620101
China in your hand 05:41:33 0600053
Locked Out Of Heaven 08:52:50 0620101
特定の期間に再生された音楽タイトルと、その開始時刻とアーカイブ ID が表示されます。
私が達成したいのは次のようなものです:
title starttime archnr
============================================
Locked Out Of Heaven 05:36:08 0620101
Locked Out Of Heaven 08:52:50 0620101
残りの列は 2 つだけです。どちらも同じタイトルとアーカイブ番号を共有していますが、時間の部分が異なります。「HAVING COUNT」の値を大きくすると、まったく同じエントリが存在しないため、ゼロ行の結果セットが得られます。
私がこれまでに発見したことは、この問題の解決策にはネストされたサブクエリがある可能性が高いということですが、それを実行できないようです。これに関するヘルプは大歓迎です。
注: 私は Oracle 11g サーバーを使用しています。私のユーザーは読み取り専用権限を持っています。ワークステーションで SQL Developer を使用しています。