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
운영게시판
최근게시물
MySQL Q&A 30957 게시물 읽기
No. 30957
간단한 구문좀 도와주세요...
작성자
한강희(khhan1002)
작성일
2016-05-06 13:44
조회수
6,942

제게 이런 테이블(table1)이 있다고 했을때

id type num
1 a 10
1 b 11
2 a 11
2 b 14
2 a 13
1 a 14
1 a 12

저는 max(num)인데 b 타입이면서 id로 group by 를 한거를 구하고 싶어요, 추가하자면 type a가 사람당 (id로 구분 지을시 두 사람이겠죠) 몇번 나오는지에 따라서요. 

설명을 잘 못하겠는데 예를 들자면 

SELECT MAX(num) FROM table1 WHERE type='a' GROUP BY id HAVING COUNT(table1.type)>2 라는 쿼리를 써서 각 사람에 대해서 타입이 a일 경우에 그리고 그 a타입인 횟수가 2번이 넘어가는 경우에 한해서 num의 최대값을 구해봤는데요. 여기서 제가 궁금한건

 

각 사람에 대해서 "타입이 b인 경우이나" a타입인 횟수가 2번이 넘어가는 경우에 한해서 num의 최대값을 구하는 방법이에요.. 이게 단순히

SELECT MAX(num) FROM table1 WHERE type='b' GROUP BY id HAVING COUNT(table1.type='a')>2 라고 한다고 되는게 아니더라고요ㅠㅠ SUM도 써보고 했는데 모르겠어서 좀 도움을 구하고자 올려봅니다. 조건문을 걸어서 해야하는건지 좀 알려주세요

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

설명이 애매한데요.

결과표도 올려주세요.

혹시 이런거?

SELECT id
     , MAX(CASE type WHEN 'b' THEN num END) max_b_num -- 3. b 의 최대 num
  FROM t
 GROUP BY id                                          -- 1. ID 별
HAVING COUNT(CASE type WHEN 'a' THEN 1 END) > 2       -- 2. a 2건 이상인 것중
;

마농(manon94)님이 2016-05-09 08:41에 작성한 댓글입니다.
이 댓글은 2016-05-09 10:28에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
30960MySQL 검색된 데이터들 중 특정 데이터가 몇번째 위치하는지 알아내는 쿼리 없을까요? [1]
쿼리질문
2016-05-17
7453
30959Function에서 Procedure 호출
장진식
2016-05-17
7007
30958공유기를 통한 PC의 MySQL 외부접근이 안됩니다. [2]
포트좀요
2016-05-11
9315
30957간단한 구문좀 도와주세요... [1]
한강희
2016-05-06
6942
30956MFC ODBC로 mariadb 연결시 오류
심시미
2016-05-05
7100
30955mysql 구문에러 도와주세요 ㅠ [2]
김차열
2016-05-03
8175
30952통계쿼리 질문합니다. [6]
이호수
2016-04-25
7449
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다