0
我在執行以下查詢時遇到性能問題。需要太多時間來獲取結果。它一次獲取整個結果(比如說3000)。我試圖通過以下方式獲取10條記錄:使用rownum <11
。但它只顯示3-4條記錄。重複的header_ids
存在。我們可以使用DISTINCT和rownum來獲得10行。有沒有其他方法可以解決這個問題?使用DISTINCT和rownum獲取記錄
SELECT DISTINCT oh.header_id,
oh.cust_po_number purchase_order,
oh.order_number,
DECODE(oh.orig_sys_document_ref, NULL, oh.orig_sys_document_ref, SUBSTR(oh.orig_sys_document_ref, LENGTH('OE_ORDER_HEADERS_ALL')+1)) web_reference_number,
TO_CHAR(oh.ordered_date, 'FMMon-DD-YYYY') date_ordered,
(SELECT MIN(schedule_ship_date)
FROM oe_order_lines_all
WHERE header_id = oh.header_id
And Oh.Sold_To_Org_Id = 12338
) oldest_schedule_ship_date,
oe_totals_grp.get_order_total(ol.header_id,NULL,'ALL') total_value,
oh.transactional_curr_code currency_code,
COUNT(*) over() AS total_count
FROM oe_order_headers_all oh,
oe_order_lines_all ol
Where Oh.Header_Id = Ol.Header_Id
-- AND ol.actual_shipment_date BETWEEN sysdate - 180 AND sysdate
AND oh.sold_to_org_id = 12338
是的,rownum是作爲where子句的一部分被過濾的resultrow的實習編號。所以它發生在獨特之前。 – Koryu