database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 7670 게시물 읽기
No. 7670
월별자료 boxplot
작성자
chunrima(chunrima)
작성일
2009-04-02 02:11
조회수
7,007

고수님들의 조언 부탁드립니다.


일별자료를 합산하여 월별자료를 만든 테이블 strflowmo 을 이용하여

데이터베이스에서 다음과 같이 쿼리를 실행하면,


select val,date from strflowmo

      WHERE (SELECT EXTRACT(YEAR FROM date) >= 1947) and (SELECT EXTRACT(YEAR FROM date) <= 1950) and stid = '067835';


<php 에서의 코드는

$result = pg_query($db_conn, "

    SELECT val,date From strflowmo 

      WHERE (SELECT EXTRACT(YEAR FROM date) >= 1947) and (SELECT EXTRACT(YEAR FROM date) <= 1950) and stid = '067835'");

>


결과가 이렇게 나옵니다. 날짜가 매달 1일로 나오지만 그냥 월별자료로 간주합니다. 즉, 1947-10-01일은 그냥 1947년 10월로 간주합니다.

val      date

621     1947-10-01 00:00:00-06

827     1947-11-01 00:00:00-06

827     1947-12-01 00:00:00-06

1227     1948-01-01 00:00:00-06

2969     1948-02-01 00:00:00-06

....

...

1023     1950-11-01 00:00:00-06

1593     1950-12-01 00:00:00-06


궁금한것은, 이 결과물을 이용해서 php 에서 월별 박스그래프 (Boxplot)을 만들기 위해 다음과 같은 Array 가 필요합니다.

$Q0Data = array(40, 45, 40, 30, 20, 50, 25, 44, 25, 50, 20, 30);

$Q1Data = array(55, 60, 50, 40, 38, 60, 51, 60, 51, 60, 38, 40);

$Q2Data = array(62, 70, 60, 50, 48, 70, 62, 70, 62, 70, 48, 50);

$Q3Data = array(70, 80, 65, 60, 53, 78, 69, 76, 69, 78, 53, 60);

$Q4Data = array(80, 90, 75, 70, 60, 85, 80, 84, 80, 85, 60, 70);


첫번째 $Q0Data는 최소값을 나타내고

두번째 $Q1Data는 25%을 나타내고

세번째 $Q2Data는 중간값을 나타내고

네번째 $Q3Data는 75%을 나타내고

마지막 $Q4Data는 최대값을 나타낸다고 가정했을때


쿼리 결과물을 이용하여 월별값으로 나타내고 싶습니다. 즉, 1947년에서 1950년동안의 자료를 바탕으로

$Q0Data 의 Array 값이 (1월최소값, 2월최소값, 3월최소값, 4월 최소값......12월 최소값)

....

....

$Q4Data 의 Array 값은 (1월최대값, 2월최대값,3월최대값, 4월최대값....12월 최대값) 을 표현 하고자 합니다.


다음과 같이 php에서 결과를 뽑아내긴 했는데 어떻게 매해에 발생하는 1월에서 12월달값을 고려하여 최소갑, 25%값, 중간값, 75%값, 그리고 최대값을 계산하여 Array로 만들어야 할지

모르겠습니다.

while ($row = pg_fetch_row($result)) {

    $streamflow[] = $row[0];

}


도움부탁드립니다.


감사합니다.


현.

이 글에 대한 댓글이 총 1건 있습니다.

^^;

저라면 월별 자료 처리하는 테이블 만들어서 트리거 걸어서 처리하겠습니다 ^^;


꼭 db를 쿼리로 다 하실려고 생각히시면 많이 복잡해집니다.


필요한것들은 따로 통계 만들고 트리거 걸고 ^^;


그럼

김병석(byung82)님이 2009-04-02 08:13에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7673dump 를 하지 않고 data를 백업하는 방법 [1]
길재
2009-04-03
6885
7672csv import 할때에 만드시 테이블을 정의해주고 해야하나요?... [1]
성제호
2009-04-03
7048
7671pgpool 기본포트로 접속시 질문드립니다
김태규
2009-04-02
6506
7670월별자료 boxplot [1]
chunrima
2009-04-02
7007
7669쿼리좀... [1]
초짜
2009-04-01
7448
7668쿼리문 힌트좀 주세요~ T.T [1]
김연자
2009-03-31
6611
7667MSDE에 비해 PostgreSQL의 장점은 무엇인가요? [10]
임재원
2009-03-30
8791
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다