ercnam
6k
2018-02-19 13:31:47
5
630

jqgrid 로 통계를 그려야 하는데 감이 안오네요


안녕하세요,


본론부터 말하자면...

한달 단위로 각 지점당 상품별로 분류해서 이걸 또 날짜마다 몇개가 팔렸는지 통계를 내야 합니다

...

그리는건 jqgrid 로 하면 될거같은데, 데이터를 추리는 과정에서 감이 안와서 질문 올립니다.

원본 데이터는 각 상품구입건 마다 1개씩 생성되는데,

여기서 일단 지점/날짜/상품명만 추려냈는데요.


이제 이걸 위에 말한대로 지점별/상품별/날짜별로 뭉쳐야(?) 하는데 말이죠..

혹시 이해가 안가셨다면 이런 겁니다


A지점/111상품/2일

A지점/222상품/2일

B지점/111상품/1일

A지점/111상품/2일

C지점/111상품/10일

....


이런식으로 데이터가 쭈루룩 나온다면 저 중에 A지점/111상품/2일 에 해당하는 데이터는 2건 있으니까 

jqgrid 의 A지점-111상품-2일 칸에 "2" 라고 써주는 것이죠.




1일2일
A지점111상품
2
A지점222상품
1

대충 이렇게.


헌데 이게 DB에 들어있는 데이터라면야 쿼리를 써서 해결하면 되겠지만 안타깝게도 그게 아니라서요,

그래서 제가 손으로 분류를 해줘야 할거같은데

혹시 List<Object> 자료형 중에 

"List 내부의 값 중에 중복된 값의 개수를 세주는" 메소드 같은거 있을까요?

Object 는 일단 VO 로 만들어뒀습니다.


아니면 저 분류된 값들을 DB에 죄다 때려박은 후에 쿼리를 써서 분류를 하는게 나을수도 있을까요?

이쪽은 속도의 문제가 걱정되고

(한달에 보통 7000~10000 ROW 분량의 데이터가 발생할 것으로 추측중입니다)

데이터를 저장할 필요는 없는건데 그러면 로직이 완료된 이후에 일일이 테이블 삭제를 해줘야 하는건지 모르겠네요. DB를 쓰자는 아이디어는 일종의 꼼수같은 느낌이 드는군요.


0
  • 답변 5

  • ShipJH
    1k
    2018-02-19 13:46:31

    A지점/111상품/2일

    A지점/222상품/2일

    B지점/111상품/1일

    A지점/111상품/2일

    C지점/111상품/10일


    이런 정보는 어디서 갖고오는거에요? 

  • ercnam
    6k
    2018-02-19 13:50:26

    ShipJH

    갑사 DB에 HttpRequest로 파라미터를 날리면 XML로 응답합니다.

    안에는 여러 정보가 있는데.. 그중에 저 3가지만 필요하다고 판단되어서 그것만 제가 따로 빼냈죠.

    그쪽 DB에다 직접적으로 쿼리를 날린다거나 하는건 불가능해서 일단은 제가 할수 있는 선은 여기까지입니다. 빼낸 데이터를 분류하는건 저의 재량.. 이라는 거죠

  • ShipJH
    1k
    2018-02-19 14:25:48

    ercnam 

    아~rest api 호출하는 식으로 데이터를 갖고와서 통계를 내주셔야되는구나.. 

    지점별,상품별,일별 모두 일치할때마다 포문돌리면서 어딘가에 적재하면서 카운트세주셔야할거같은데 ...


    아니면...


    통계를 저장하고, 그 저장된 값을 조회하는 프로시저 1개 혹은 인서트 1개 , 조회 1개

    테이블 내에 데이터를 삭제해주는 프로시저 1개 혹은 그냥 딜리트 쿼리문  

    3번날려주셔야 할거같은데요.................


    아니면 님말대로 하나의 리스트속에 같은 값 중복체크해주는 형태로 해야되지 않을까 싶습니다.

    http://formin97.tistory.com/165


     


  • ercnam
    6k
    2018-02-19 18:16:33

    결국은 DB써서 해결하기로 결정했습니다.

    어차피 java단에서 for문 돌면서 cnt++ 하는거나... DB에 넣어놓고 쿼리 날리는거나 자원 소모는 비슷할거 같아서요...


    다만 DB로 할래도 장난이 아니네요 ㅋㅋㅋ 쿼리 어떻게 짜지;;

  • ShipJH
    1k
    2018-02-19 18:22:35

    힘내세요.. 조회할때마다 ( API 호출할떄마다 ) 기존테이블 데이터 삭제 -> 조회한값 insert 후 -> 통계 

    이렇게만 돌면 되지 않을까 싶습니다..... 

  • 로그인을 하시면 답변을 등록할 수 있습니다.