2014-02-21 5 views
0

개별 홀에서 가장 많이 팔린 좌석을 알고 싶습니다.SQL (오라클) 가장 일반적인 값을 선택하십시오 (여러 테이블)

티켓

IDTICKET MOVIE_IDMOVIE  HALL_IDHALL  PRICE  SEAT ROW 
1   10    2    4   10  6 
2   5    2    4   10  5 
3   5    2    4   10  4 
4   8    5    4   3  1 
5   7    5    4   4  15 
6   10    7    4   7  9 
7   6    2    4   14  3 

IDHALL  PLACE_IDPLACE NAME   NUMSEATS  EQUIPMENT 
1   5    A1    250   high 
2   5    B1    200   medium 
3   5    B2    200   medium 
4   5    C2    180   medium 
5   5    C2    180   medium 
6   9    old hall  120   low 

디스플레이 ...

  1. B1 10
  2. C2 3 같아야
항공 t에서
+0

안녕하십니까. 데이터가 포함 된 이미지로 연결하지 말고 질문 텍스트에 직접 데이터를 추가하십시오. –

+0

스택 오버플로에 오신 것을 환영합니다. 데이터 이미지를 게시하는 대신 위의 질문에 샘플을 복사하여 붙여 넣으십시오. 포맷팅을 위해 공백을 보존하려면 강조 표시하고'{}'편집기 툴바 버튼 또는 ctl-k를 클릭하여 형식화 된 코드 블록을 생성하십시오. –

답변

0
SELECT b.Name, a.Seat 
FROM (SELECT  Hall, Seat, COUNT(1) AS SeatCount, RANK() OVER (PARTITION BY Hall ORDER BY COUNT(1) DESC) AS SeatRank 
     FROM  SEAT 
     GROUP BY Hall, Seat) a 
      INNER JOIN 
     HALL b 
     ON a.HALL_IDHALL = b.IDHALL 
WHERE a.SeatRank = 1 
+0

rank()를 사용하지 않고 가능성이 있습니까? 계급 작동 방식을 정확하게 이해하지 못합니다. – user3338605

+0

괜찮습니다.하지만 쉽게 이해할 수있는 옵션을 찾고 있습니다! – user3338605

0

선택 h.name, t.hall_idhall, h.idhall 맥스 (t.seat), 홀 여기서 H = t.hall_idhall h.idhall 기 h.name 의해 t.hall_idhall, h.idhall

위 쿼리를 시도하십시오.

+0

그것은 가장 일반적인 좌석이 아니라 가장 많은 자리를 제공합니다. – user3338605

+0

최대 숫자 –

+0

대신에 min 기능을 사용해보십시오. 최소 좌석 수를 제공합니다. – user3338605

관련 문제