0

一意でない重複のみを表示するクエリを作成しようとしています。考慮されるすべてのレコードを表示するクエリを既に作成しました。

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 を使用しています。

4

1 に答える 1