简体   繁体   English

仅显示组中的前2个值

[英]show only top 2 values in group

The current code I have finds the average and shows all 4. I am trying to trim it down to holy show the information for the top 2 highest average, 我目前的代码找到了平均值,并显示了全部4个。我试图将其缩小以圣洁地显示前2个最高平均值的信息,

SELECT BRANCHSUBURB, AVG(SESSIONPRICE)
FROM BRANCH NATURAL JOIN SESSIONS 
GROUP BY BRANCHSUBURB
ORDER BY BRANCHSUBURB;

ie should only show manly and cronulla click image click me 即应该只显示男子气概和cronulla点击图片点击我

Just use order by and limit : 只需使用order bylimit

SELECT BRANCHSUBURB, AVG(SESSIONPRICE)
FROM BRANCH NATURAL JOIN SESSIONS 
GROUP BY BRANCHSUBURB
ORDER BY AVG(SESSIONPRICE) DESC
LIMIT 2;

Note: I strongly advise you not to use NATURAL JOIN . 注意:我强烈建议您不要使用NATURAL JOIN In my opinion, it is a bug waiting to happen. 我认为,这是一个等待发生的错误。 The NATURAL JOIN works based on any columns that have the same names in the two tables -- it doesn't even use declared foreign key relationships. NATURAL JOIN基于两个表中具有相同名称的任何列工作-甚至不使用声明的外键关系。 It is much better to use a regular join with a USING clause. 最好将常规联接与USING子句一起USING

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM