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 7082 게시물 읽기
No. 7082
쿼리 질문입니다.
작성자
조진우(열혈지누)
작성일
2007-03-19 12:15ⓒ
2007-03-19 12:18ⓜ
조회수
4,595

temp_table

id| uid | amount | balance| date | type

1  nika   1000        1000         2007-01-01 12:20    11

2  addi   10000      1000         2007-01-02 11:34    11

3  nika    2000       3000         2008-01-22 01:34    51  

4                                       .

5                                       .                          

6                                       .


이렇게 캐시 사용에 흐름을 보여 주는 테이블이 있습니다.


여기 에서 모든 유저에 대해 가장 최근 값을 보여줘야 하는데여


시계열을 이용한 쿼리가 돼야 합니다.


select cash_tx.*

from cash_tx

inner join (select uid as uid, max(date) as date, max(id) as id from cash_tx group by uid) tb_2

on cash_tx.uid = tb_2.uid

where cash_tx.date = tb_2.date

and cash_tx.id = tb_2.id;


이런식으로 처리를 했습니다 그런데 다른 방식도 알고 싶어 져서 올립니다. max를 이용한 방법말고 모든 유저에 최근 현황을 가져오는 방법이 뭐가있나여..


그리고 저번글에 김상김님이 댓글 정말 잘 읽었습니다 감사 합니다

좋은 하루 되세요 모든 회원님들

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

해당 문제는 재고 테이블의 마지막 재고를 가져오는 문제랑 같은 건데요. 


이 문제는 RDBMS에서는 고질적으로 풀기 힘든 문제입니다. 


그냥 단순히 사용자가 적고 그 자료가 적은 경우라면 

윗 쿼리가 쓸모 있을지 몰라도, 


보여주어야할 쿼리가 수천 로우가 넘어서 버리면, 어떠한 RDBMS도 모두 버벅 거리기는 매 한가지입니다. 


이 문제는 보통 데이터웨어하우징 흔히 DW 라고 하더군요. 

이쪽으로 넘겨버립니다. ^^

RDBMS 차원의 문제가 아니라는게지요.


방법은 배치처리로 일정 시간에 필요한 통계 테이블을 주기적으로 생성하는 방법이고, 

다른 방법은 트리거 처리로 통계 자료에 원 자료가 변경 될때마다 반영하는 방법입니다. 


두번째 방법은 다시

그 마지막 값에 대한 처리를 같은 테이블 안에 둘것인가? 

통계 테이블을 따로 둘 것인가?

이것으로 나뉩니다. 


두리 뭉실한 이야기만 하죠?

잘 풀어보세요. :)


김상기(ioseph)님이 2007-03-19 15:06에 작성한 댓글입니다.

 아 그렇군여 예전에는 하루에 한번을 잡아 다른 테이블에 인서트 처리후 그걸 가지고 처리를 했다고 했는데 아무래도 그방식이 현재 처럼 처리 하는것보다는 좋은 방법이겠네여..
 감사드립니다.

조진우(열혈지누)님이 2007-03-19 15:22에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
7085OPENQUERY 사용시 문제점
likeclay
2007-03-23
4535
7084ERROR: Invalid page header in block 4945 [1]
초보자
2007-03-23
4753
7083insert on duplicate 가 없는건가요? [1]
송효진
2007-03-21
4300
7082쿼리 질문입니다. [2]
조진우
2007-03-19
4595
7081년도와 월이 주어졌을 경우, 해당 월의 달력을 생성해주는 쿼리를 만들고 싶은데... [3]
임형구
2007-03-19
6337
7080프로시저 이용 외부 실행파일 실행하기 질문드립니다. [2]
이승미
2007-03-17
5171
7079irc에서 postgresql유저 채널 혹시 아시나용? [1]
PG짱
2007-03-16
4223
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다