我已找到当前代码的平均值并显示全部4.我正在尝试将其减少以仅显示顶部 2最高平均值的信息。我目前的代码如下。
SELECT BRANCHSUBURB, AVG(SESSIONPRICE)
FROM BRANCH NATURAL JOIN SESSIONS
GROUP BY BRANCHSUBURB
ORDER BY AVG(SESSIONPRICE) ASC;
我想只显示底部的2个值(这将是最高的) 或者如果它更容易,显示前2个值(并按降序排序)
答案 0 :(得分:0)
在Oracle中,您可以使用子查询:
SELECT *
FROM (SELECT BRANCHSUBURB, AVG(SESSIONPRICE)
FROM BRANCH NATURAL JOIN SESSIONS
GROUP BY BRANCHSUBURB
ORDER BY AVG(SESSIONPRICE) ASC
) x
WHERE rownum <= 2;
在Oracle 12c +中,您可以使用ANSI标准功能,因此不需要子查询:
SELECT BRANCHSUBURB, AVG(SESSIONPRICE)
FROM BRANCH NATURAL JOIN SESSIONS
GROUP BY BRANCHSUBURB
ORDER BY AVG(SESSIONPRICE) ASC
FETCH FIRST 2 ROWS ONLY;