如何在 Oracle 11g 中限制查询结果?

How to LIMIT query results in Oracle 11g?

我有以下查询:

SELECT p.product_name, SUM(o.quantity) no_of_product_sale
  2  FROM Order_Address_Quantity o
  3  JOIN Product p ON p.product_code = o.product_id
  4  GROUP BY p.product_name;

这导致:

PRODUCT_NAME                   NO_OF_PRODUCT_SALE
------------------------------ ------------------
Coffee                                         10
Noodles                                         4
Oil                                             8
Rice                                            5
Dishwasher                                      3
Biscuits                                        2

6 rows selected.

如何显示最大 no_of_product_sale 的产品?在其他 SQL 中,可以通过添加 LIMIT = 1 子句来完成。

您需要添加一个 ORDER BY 子句以从最高到最低对您的条目进行排序,然后您可以使用外部 SELECT 从中获取第一个条目:

SELECT *
FROM 
(SELECT p.product_name, SUM(o.quantity) no_of_product_sale
FROM Order_Address_Quantity o
JOIN Product p ON p.product_code = o.product_id
GROUP BY p.product_name
ORDER BY 2 DESC )
WHERE ROWNUM = 1;