안녕하세요. 가진 지식이 짧아서 질문을 올립니다.
아래와 같은 table에서 min, max, avg 쿼리를 하고싶습니다.
date_time |
item1 | item2 | item3 | item4 | item5 |
[2013/02/21 08:05:20:500] | 110.5 | 120 | 99 | 10 | 5 |
[2013/02/21 08:05:20:501] | 120.6 | 124 | 101 | 20 | 6 |
[2013/02/21 08:05:20:502] | 130.7 | 128 | 103 | 30 | 7 |
[2013/02/21 08:05:20:503] | 140.8 | 132 | 105 | 40 | 8 |
[2013/02/21 08:05:20:504] | 150.9 | 136 | 107 | 50 | 9 |
[2013/02/21 08:05:20:505] | 161 | 140 | 109 | 60 | 10 |
[2013/02/21 08:05:20:506] | 171.1 | 144 | 111 | 70 | 11 |
위와같은 table에서 Date_time을 제외하고 각 항목에 대하여 min, max, avg 쿼리를 하여 아래와 같이 만들고 싶습니다.
어떻게 해야 하는지요......
min | max | avg | |
item1 | 110.5 | 171.1 | 140.8 |
item2 | 120 | 144 | 132 |
item3 | 99 | 111 | 105 |
item4 | 10 | 70 | 8 |
item5 | 5 | 11 | 8 |
여러 고수님들의 도움 부탁드립니다.
item의 갯수가 고정이라면
select 'item1', min(item1), max(item1), avg(item1)
union all
select 'item2', min(item2), max(item2), avg(item2)
union all
select 'item3', min(item3), max(item3), avg(item3)
union all
select 'item4', min(item4), max(item4), avg(item4)
union all
select 'item5', min(item5), max(item5), avg(item5) 이렇게 하면 될 거 같습니다.
근데 만약 item의 갯수가 앞으로도 계속 늘어날 전망인데 테이블을 이렇게 설계하셨다면 조금 생각해보셔야 할듯
테이블 설계를 datetime, item, count 이렇게 하면
select min(item), max(item), avg(item) from table1 group by item 이렇게 하면 되겠네요.