更新されたbig oracle(Oracle Database 12c Enterprise Editionリリース12.1.0.2.0)表say table_nameがあります。 15秒ごとに それは多くの列が、私が懸念していたものを持っていることは、次のとおりです。各列の最大タイムスタンプを見つけて列の別の値を取得し、列の残りの部分を取得する方法
Name Null? Type
--------------- -------- ---------------------------------
ID_1 NOT NULL NUMBER(38)
UTC_TIMESTAMP NOT NULL TIMESTAMP(6) WITH TIME ZONE
ID_2 VARCHAR2(8)
SERVER_NAME VARCHAR2(256)
ID_3 NUMBER(38)
COUNT_1 NUMBER(38)
COUNT_2 NUMBER(38)
私は何をしようとしていることである:
1)すべてのレコードを取得する場所UTC_TIMESTAMP < = CURRENT_DATEとUTC_TIMESTAMP> CURRENT_DATE - 5分(約125K-150K)
2)このデータはID_1が重複しています。だから私は、各ID_1が重複しているうちに最大(UTC_TIMESTAMP)を持つレコードだけを取りたいと思っています。だから今私たちは別のID_1を持っています。
私が試してみました何:を以下のSQL
with temp_1 as (
select m.ID_2, m.ID_1, max(utc_timestamp) max_utc_timestamp
from commsdesk.table_name m
where m.ID_2 = 'TWC'
group by m.ID_2, m.ID_1)
select f.utc_timestamp
from commsdesk.table_name f
join temp_1 t
on t.max_utc_timestamp = f.utc_timestamp
and t.ID_2 = f.ID_2
and t.ID_1 = f.ID_1;
問題の使用:を私はID_2、ID_1とUTC_TIMESTAMPを得ることができますが、私は同様に他のすべての列をしたいです。 SQLを使用して実行できますか?
5分のウィンドウ内に、約2200のID_1と約125K-150Kのレコードがあります。 これを行うには、Excelのシートに125K-150Kのレコードをコピーし、それぞれのID_1のUTC_TIMESTAMPの最大値を見つけるために2200 ID_1のそれぞれをフィルタリングすることで、非現実的です。 しかし、マクロを使ってすばやくそれをする方法があれば、それを行うこともできます。
サンプルダミーデータ:
ID_2 SERVER_NAME ID_3 ID_1 UTC_TIMESTAMP COUNT_1 COUNT_2
ABC PQRS.ABC.TPO 2 303 24-JUL-17 03.41.55.000000000 PM +00:00 4 0
ABC PQRS.ABC.TPO 2 1461 24-JUL-17 03.42.48.000000000 PM +00:00 1 7
ABC PQRS.ABC.TPO 2 1 24-JUL-17 03.41.36.000000000 PM +00:00 2 3
ABC PQRS.ABC.TPO 2 1461 24-JUL-17 03.41.16.000000000 PM +00:00 0 8
ABC PQRS.ABC.TPO 1 1 24-JUL-17 03.41.11.000000000 PM +00:00 5 0
ABC SRP.ROP.MTP 1 1 24-JUL-17 03.41.23.000000000 PM +00:00 0 0
ABC SRP.ROP.MTP 2 303 24-JUL-17 03.41.34.000000000 PM +00:00 0 0
ABC SRP.ROP.MTP 2 1461 24-JUL-17 03.41.31.000000000 PM +00:00 0 0
ABC SRP.ROP.MTP 4 303 24-JUL-17 03.41.26.000000000 PM +00:00 4 8
ABC SRP.ROP.MTP 2 303 24-JUL-17 03.41.20.000000000 PM +00:00 0 0
ABC SRP.ROP.MTP 1 1461 24-JUL-17 03.41.01.000000000 PM +00:00 3 8
ABC SRP.ROP.MTP 4 1 24-JUL-17 03.41.18.000000000 PM +00:00 9 1
予想される出力:
ID_1 UTC_TIMESTAMP COUNT_1 COUNT_2
1 24-JUL-17 03.41.36.000000000 PM +00:00 2 3
303 24-JUL-17 03.41.55.000000000 PM +00:00 4 0
1461 24-JUL-17 03.42.48.000000000 PM +00:00 1 7
サンプルデータには、説明したルールに基づいて重複がありません。いくつかの代表的なサンプルデータ*と*そのデータに期待する結果を示してください。 –
サンプルデータを更新し、予想される出力を追加しました。応答が遅れて申し訳ありませんが、私は週末にデータにアクセスできませんでした。予想される出力が得られたら、MAX(UTC_TIMESTAMP)とSUM(COUNT_1)AND SUM(COUNT_2)を期待される出力から得るためにサブクエリとして使用します。 – 300
最初に投稿したクエリはその結果を取得します。私はそれを表示するために私の答えを更新しました。私はあなたがサブクエリについて何を意味するか分かりません。あなたは最終的に '24-JUL-17 03.42.48'、7、10'で単一の結果を探していますか? –