2017-09-15 11 views
0

上位25個の値を照会することができません。私のテーブルには、取引日、場所、UPC番号、および販売数量が含まれています。上位25個の合計値を照会できません

これは私がこれまで持っているものである - date_id BY fact_pos_sales グループから "総売上" として

"日付" として date_idを選択して、 "ストア" としてSTORE_ID、合計(Sales_Unit)は、 をSTORE_ID ORDER BY "トータルセールス" DESC ;

これは、上位25の値を除いて私の結果として得たいと考えているものです。私は、これらの2つの方法のどれも働かないことを除いて、Selectの隣に "Top 25"を追加するか、SQLの最後に "Limit 25"を追加しようとしました。 Oracle SQL Developerを使用しています。これは価値があります。

Current output, without the limit in place

誰かが助言することができますか?私は過去2時間にわたってStockoverflowやその他の場所で回答を検索しようとしていましたが、結果はありませんでした。ありがとうございました!

+1

'TOP'は、Oracleであなたが使用することができ、MySQL用LIMIT''、SQL Serverのです 'rownum' –

+0

以前からの既存の回答、必要と思われるものだと思います https://stackoverflow.com/a/2498058/2175524 –

+0

アルベルトとゴランに感謝します! –

答えて

0

すべてのデータベースシステムがSELECT TOP句をサポートしているわけではありません(SQL Server)。 MySQLLIMIT句を使用して限定数のレコードを選択し、OracleROWNUMを使用します。

ので、何かのように:

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; 
のOracle 12cに
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

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; 
関連する問題