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
운영게시판
최근게시물
MS-SQL Q&A 5147 게시물 읽기
No. 5147
초보라서, 동일한 항목에 대한 합계 관련 통계 관련 쿼리 좀 부탁 드립니다.
작성자
강진수(krnet21)
작성일
2009-07-03 09:32
조회수
5,919

원래 테이블에 저장된 값은 다음과 같습니다.
select * from tb_stat_real_stay where convert(char(6), input, 12) = convert(char(6), getdate(), 12) order by input asc;

input                         app_id stair stay status
2009-07-03 00:01:08.997  1 1 1 0
2009-07-03 00:04:46.473  3 1 0 1
2009-07-03 00:06:49.560  1 1 0 0
2009-07-03 00:08:15.103  2 2 0 1
2009-07-03 00:08:42.043  2 2 0 1
2009-07-03 00:08:56.980  2 2 0 1
2009-07-03 00:09:01.307  2 2 0 1
2009-07-03 00:09:08.603  1 1 0 1
2009-07-03 00:10:02.090  1 1 0 1
2009-07-03 00:10:18.103  2 2 0 0
2009-07-03 00:10:27.527  2 2 0 1
2009-07-03 00:10:45.200  3 1 0 0
2009-07-03 00:10:59.990  3 1 0 0
2009-07-03 00:11:04.323  1 1 0 0
2009-07-03 00:11:11.700  3 1 0 0
2009-07-03 00:12:05.150  2 2 0 0
2009-07-03 00:12:30.497  3 1 0 0
2009-07-03 00:16:51.277  1 1 1 0
    .
    .
    .
    .
    .
    .


제가 해본 쿼리는 아래와 같습니다.

select app_id, count(app_id) as count, stair, stay, status from tb_stat_real_stay
     where convert(char(6), input, 12) = convert(char(6), getdate(), 12)
     group by app_id, stair, stay, status;

위와 같은 문장을 실행하면, 아래와 같은 결과가 나옵니다.
참고로, 'app_id'와 'stair' 값은 정해져 있습니다. 즉,
app_id(노드 ID)는 'stair(층 정보)'에 하나 밖에 없으므로
app_id가 다른 'stair(층)'에 존재하지 않습니다.

------------------------------------------
app_id  count stair(층)  stay(주차) status(상태 : 단시간 주차 유무 혹은 장시간 주차 유무)
------------------------------------------
   1      7       1       0           0
   1      4       1       0           1
   1      3       1       1           0
   1      6       1       1           1
   2      8       2       0           0
   2      6       2       0           1
   2      5       2       1           0
   2      3       2       1           1
   3      2       1       0           0
   3      4       1       0           1
   3      5       1       1           0
   3      2       1       1           1


위의 결과 중에서 'app_id' 필드가 동일한 항목에 대해서
'count' 필드에 있는 값을 합(SUM)하여 아래와 같은 결과를
구하고 싶습니다. 즉, 결과는 아래와 같이 나왔으면 합니다.


-------------------------------------------------------------------------------------------------
app_id   total    stair    stay_staus_00_cnt   stay_staus_01_cnt  stay_staus_10_cnt  stay_staus_10_cnt
      (전체개수) (층정보) (stay:0, status:0)  (stay:0, status:1) (stay:1, status:0)  (stay:1, status:1)
------------------------------------------------------------------------------------------------------
   1      20        1             7               4                  3                  6        
   2      22        2             8               6                  5                  3
   3      13        1             2               4                  5                  2        

                                               
맨 위의 쿼리를 좀더 보완해 주십사 하고요
혹은 다른 방법이 있으시면, 작성 부탁 드립니다.

[Top]
No.
제목
작성자
작성일
조회
5179회사서버에 접속이 안됩니다..ㅠ [1]
enteris
2009-07-06
9086
5149쿼리 시간별 일별 계산방법좀... [1]
cpuid
2009-07-03
6180
5148[쿼리 질문] 동일한 항목에 대해 합을 구하고 싶습니다.
강진수
2009-07-03
5478
5147초보라서, 동일한 항목에 대한 합계 관련 통계 관련 쿼리 좀 부탁 드립니다.
강진수
2009-07-03
5919
5140전체 텍스트 검색 서비스 처음 조회 느린현상 궁금합니다.
알바
2009-07-02
5546
5135[질문] 검색 조건에 따른 SQL문 작성시... [1]
김성진
2009-07-02
5898
5134Linked Server Join 오류 질문 [1]
epqlfao
2009-07-02
5485
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다