어제 개발하고 뭔가 아쉬움을 느꼈다. ( http://tost.tistory.com/176 )

왜냐... 몽고DB에서 json데이터를 집어 넣는데...
이때의 필드명이 map의 key값과 매칭되는데
다른 이름으로 쓰고 싶다는것이다. 흠흠

근데 내가 구현한 어제 코드에서는 그룹핑된 hash의 key값이 고정적이라는것이다.
예를들어,   "sum(field)" => "value" 의  sum(field)  같이 말이지

그래서 sql의 as 같은 닉네임과,
손보는김에 where절을 블럭으로 구현해서 쓰도록 했다..


 뭔소린지 모르겠으니, sql문과 비교해보면 이런느낌...

 sql문 내가 만든 코드와 비교하면 
 select
   max(size) as max_size,
   max(size) ,
   sum(size) ,
   count(key) ,
   min(size)

from
  table
where
   filedate.substr(1,4) = '2011'
group by
   filedate.substr(1,4)
 
 


 
# count, sum, max, min, first 라는 기능은 구현해놨다.
 table = { "size" => "20" ... 생략 ... }

 obj = GroupHash.new
 obj.set_field("max(size) as max_size, max(size),sum(size),count(key), min(size)")
 obj.addAll( table 

 obj.where do
   map["filedate"].slice(0,4)   == "2011" 
 end


 result = obj.group { |map| 
  map["filedate"].slice(0,4)
 }


puts result 





+ Recent posts