Sql 如何在Oracle 11g中限制查询结果?
我有以下疑问:Sql 如何在Oracle 11g中限制查询结果?,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我有以下疑问: 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 ---------
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.
我如何显示产品的最大无产品销售额?在其他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;
为了记录在案,如果有人在这里绊倒,从Oracle 12开始,您可以使用SQL:2008标准
FETCH FIRST N ROWS ONLY
子句