我在查询前25个值时遇到了困难。我的表包含交易日期,地点,UPC编号和销售数量。
这是我到目前为止 -
选择 date_id为“Date”,store_id为“Store”,sum(Sales_Unit)为“Total Sales” 从 fact_pos_sales GROUP BY date_id,store_id 订购“总销售额”DESC ;
这是我希望得到的结果,除了前25个值。我尝试在Select旁边添加“Top 25”,或者在我的sql末尾添加“Limit 25”,但这两种方法都不起作用。我正在使用Oracle SQL Developer,因为它值得。
Current output, without the limit in place
有人可以提供建议吗?我一直试图在过去的两个小时里搜索Stockoverflow和其他地方的答案,没有结果。谢谢!
答案 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;
答案 1 :(得分: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
答案 2 :(得分: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;