테이블 2개의 데이터에서
하나의 데이터를 뽑고자 하는데 아무리 검색하고 고민해도 어떻게 풀어나가야 될지 너무 막막해서 질문 드립니다.
테이블 1
app_id | timestamp | value |
1 | 2016-07-10 | 17.664 |
2 | 2016-07-10 | 5.663 |
3 | 2016-07-10 | 16.668 |
4 | 2016-07-10 | 1.664 |
5 | 2016-07-10 | 7.664 |
6 | 2016-07-10 | 10.664 |
7 | 2016-07-10 | 13.664 |
8 | 2016-07-11 | 19.664 |
테이블 2
app_id | node_name | parameter_name |
1 | test_db | CPUprcrProcessorTimePercent |
2 | test_db | PAGEpgUsagePercent |
3 | test_db | SYSsysProcessorQueueLength |
4 | test_db | MemoryUsage |
5 | test_db | SYSsysProcessorQueueLength |
6 | test_db | SYSsysProcessorQueueLength |
7 | test_web | CPUprcrProcessorTimePercent |
8 | test_web | MemoryUsage |
테이블 1과 2의 데이터는 위와 같은 형식이며
app_id는 동일하게 들어가 있는 상태입니다.
테이블 1에 있는 데이터는 각 장비의 파라메터 값이 저장되어 있는 상태이고
테이블 2에 있는 데이터는 각 장비의 성능 데이터가 저장되어 있는 상태입니다.
제가 뽑고자 하는 데이터는 아래와 같이
node_name, CPU평균, CPU최대, MEM평균, MEM최대 값을 뽑고 싶습니다.
node_name | CPU평균 | CPU최대 | MEM평균 | MEM최대 |
test_db | 1.664 | 19.664 | 1.664 | 19.664 |
test_web | 1.664 | 19.664 | 1.664 | 19.664 |
SELECT pa.node_name,round(avg(value), 3) CPU평균, round(max(value), 3) CPU최대
FROM p_apps pa, p_history ph
WHERE pa.app_id = ph.app_id and parameter_name = 'CPUprcrProcessorTimePercent'
GROUP BY node_name
와 같이 쿼리를 짜서 node_name 및 CPU평균, CPU최대 까지는 뽑았는데
어떻게 하면 한번에 MEM까지 뽑을 수 있는지를 도저히 모르겠습니다..
메모리의 parameter_name은 MemoryUsage 이고
도움좀 주시면 감사하겠습니다..
읽어주셔서 감사합니다.