2014-02-21 60 views
0

我想知道哪個座位是個別會堂中銷售量最高的座位?SQL(Oracle)選擇最常見的值(多個表)

訂票

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 

HALLS

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 ...
+0

歡迎來到SO。請不要鏈接到包含您的數據的圖像,而是直接在您的問題文本中添加數據。 –

+0

歡迎來到Stack Overflow。不要發佈您的數據圖像,請複製上面的問題並粘貼一個樣本。要格式化它,以便保留空格,突出顯示它並單擊'{}'編輯器工具欄按鈕或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

無法工作。它給了我最少的座位數量。 – user3338605