2017-09-15 52 views
0

我無法查詢前25個值。我的表格包含交易日期,地點,UPC號碼和銷售數量。無法查詢前25個總和值

這是我迄今爲止 -

選擇 DATE_ID爲 「日期」,商店編號爲 「商店」,SUM(Sales_Unit)爲 「總銷售額」 FROM fact_pos_sales GROUP BY DATE_ID,STORE_ID ORDER BY「Total Sales」DESC ;

這是我希望得到的結果,除了前25個值。我試過在Select的旁邊添加「Top 25」,或者在我的sql的末尾添加「Limit 25」,除了這兩種方法都不起作用。我正在使用Oracle SQL Developer,因爲它值得。

Current output, without the limit in place

會有人能夠指教?我一直在嘗試在Stockoverflow和其他地方搜索過去兩個小時的答案,但沒有結果。謝謝!

+1

'TOP'是SQL Server,'LIMIT'爲MySQL,Oracle中你可以使用'rownum' –

+0

從現有的答案,我認爲這是你需要的 https://stackoverflow.com/a/2498058/2175524 –

+0

謝謝阿爾貝託和戈蘭! –

回答

0

並非所有數據庫系統都支持SELECT TOP子句(即SQL Server)。 MySQL支持LIMIT子句選擇有限數量的記錄,而Oracle使用ROWNUM

因此類似:

SELECT * From 
(
    SELECT date_id as "Date", store_id as "Store", sum(Sales_Unit) as "Total Sales" 
    FROM fact_pos_sales 
    GROUP BY date_id, store_id 
    ORDER BY "Total Sales" DESC 
) 
WHERE ROWNUM <= 25; 
0
Select * From 
(
    SELECT date_id as "Date", 
      store_id as "Store", 
      sum(Sales_Unit) as "Total Sales" 
    FROM fact_pos_sales 
    GROUP BY date_id, store_id 
    ORDER BY "Total Sales" DESC ; 
) 
Where RowNum <=25 
0

在Oracle 12c中:

SELECT date_id as "Date", 
     store_id as "Store", 
     sum(Sales_Unit) as "Total Sales" 
FROM fact_pos_sales 
GROUP BY date_id, store_id 
ORDER BY "Total Sales" DESC 
FETCH FIRST 25 ROWS ONLY;