仕事でSQLを学び始めたばかりですが、サブクエリに問題があります。クエリだけでなく、サブクエリの作成方法の説明も期待しています。
現在のSQLクエリ
SELECT to_char(P_DT, 'yyyy-mm-dd HH:mi:ss'), COUNT, LATENCY
FROM latency ORDER BY P_DT
戻り値
to_char(P_DT, 'yyyy-mm-dd HH:mi:ss'), COUNT, LATENCY
2012-04-20 03:42:00 83659 1m
2012-04-20 03:42:00 70305 2m
2012-04-20 03:42:00 105194 4m
2012-04-20 03:43:00 70277 1m
2012-04-20 03:43:00 0 2m
2012-04-20 03:43:00 0 4m
必要なもの
to_char(P_DT, 'yyyy-mm-dd HH:mi:ss'), COUNT.LATENCY='1m', COUNT.LATENCY='2m', COUNT.LATENCY='4m'
2012-04-20 03:42:00 83659 70305 105194
2012-04-20 03:43:00 70227 0 0
ありがとう
データベースには、タイムスタンプ、カウント、レイテンシタイプの3つの列があります
Tmestamp = progressive timestamp for each min
Count = count, just a number
Latency Type = 1m, 2m or 4m
各タイムスタンプには1m、2m、および4mの遅延がありますが、これらはすべて異なる行です。
タイムスタンプである1つの行を返す必要があります。タイムスタンプで1mをカウントし、タイムスタンプで2mをカウントし、タイムスタンプで4mをカウントします。
count1m列count2m列などの代わりにデータベースを変更できません。
別の見方をすると、これら3つのクエリを1つにマージすることです。
SELECT to_char(P_DT, \'yyyy-mm-dd HH:mi:ss\'), COUNT
FROM LATENCY
WHERE SOURCE_ID=\'2\' AND LATENCY = \'1m\'
GROUP BY to_char(P_DT, \'yyyy-mm-dd HH:mi:ss\')
ORDER BY to_char(P_DT, \'yyyy-mm-dd HH:mi:ss\')
SELECT to_char(P_DT, \'yyyy-mm-dd HH:mi:ss\'), COUNT
FROM LATENCY
WHERE SOURCE_ID=\'2\' AND LATENCY = \'2m\'
GROUP BY to_char(P_DT, \'yyyy-mm-dd HH:mi:ss\')
ORDER BY to_char(P_DT, \'yyyy-mm-dd HH:mi:ss\')
SELECT to_char(P_DT, \'yyyy-mm-dd HH:mi:ss\'), COUNT
FROM LATENCY
WHERE SOURCE_ID=\'2\' AND LATENCY = \'4m\'
GROUP BY to_char(P_DT, \'yyyy-mm-dd HH:mi:ss\')
ORDER BY to_char(P_DT, \'yyyy-mm-dd HH:mi:ss\')