2017-03-27 59 views
-2

我有一个数据库'Store',其中列出了所有客户名称以及它们进入商店的时间,并且我想获得一个查询会生成显示每个客户访问商店的最后20次的所有行,任何人都知道我该如何做到这一点?Oracle SQL Query获取列中值的前20个实例

+2

请提供样本数据和预期输出 –

+0

请阅读此。 https://stackoverflow.com/help/how-to-ask,我们不是精灵,你有什么尝试,请张贴一些样本数据,表格ddl和期望的输出。否则,我们只是在桶里拍摄鱼。 – Miguel

+0

这是一个很简单的查询,但它更具挑战性,因为您需要提供其他信息。请提供您的表格架构(表名称,列名称,数据类型等)。 – laylarenee

回答

0

我将开始与

SELECT * FROM 
(SELECT 
    customer_name, 
    ROW_NUMBER() OVER (PARTITION BY store ORDER BY entry_time DESC) rn 
    FROM my_table) 
WHERE rn <= 20; 
0

它是真的很难只用这些信息来回答你的问题。

请注意你的表的结构或东西..

在一般

-

让我们假设你的表是“客户” 和每一个客户都有独特的“CUST_ID”。 “visit_time”将是客户进入商店的每条记录的时间。

select * 
from (
select row_number() over (partition by c.cust_id order by c.visit_time desc) rw 
from customers c) inn 
where inn.rw <= 20;