如何在 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;
我有以下查询:
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;