[英]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.