簡體   English   中英

一個oracle sql查詢,用於從屬性中查找值

[英]An oracle sql query to find value from the attributes

假設我在oracle數據庫中有以下表'player':

  P_ID P_NAME       C_ID      DEBUT      MATCH       RUNS

   101 amla          204       2003        190       5000
   102 mushi         200       2001        240       7500
   103 sakib         200       1999        150       5000
   104 ricky         205       1993        180       7000
   105 sachin        203       1990        250       8000
   106 yuvi          203       1999        150       6900

我需要一個查詢來顯示c_id,該國所有擊球手的總奔跑得分最高。 (在這種情況下,最大跑步得分手是sachin。因此查詢應返回:c_id = 203,跑步= 14900)。

我只能夠找到最大的得分手和他所屬的國家。 查詢:選擇c_id,從播放器處運行,其中runs =(從播放器中選擇max(runs)); 那樣做。 但是,我無法繼續進行。

當需要聚集函數條件時,必須使用子查詢或having子句。 此返回值始終為一行,但是如果多於一組的總數相同,那就是錯誤的:

SELECT * 
FROM (
  SELECT c_id, Sum(runs) total 
  FROM player 
  GROUP BY c_id
  ORDER BY total DESC 
) WHERE ROWNUM =1;

但你可以使用這個:

SELECT c_id, Sum(runs) total 
FROM player 
GROUP BY c_id 
HAVING Sum(runs) = (
  SELECT Max(t) from (
    SELECT Sum(runs) t 
    FROM player 
    GROUP BY c_id))
;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM