在“最小”功能之后加入另一个字段

时间:2019-12-23 16:55:26

标签: sql sql-server

我有2张桌子:

  • Customers:客户名称
  • Visits:visit_date,visitor_name

我需要所有客户的列表,第一个visit_date和第一个visitor_name。我在获取第一个visitor_name时遇到问题。

SELECT DISTINCT
    customer_name, MIN(visit_date)
FROM 
    Customers 
LEFT JOIN 
    Visits 
GROUP BY
    customer_name 

我可以做到,但是我不知道如何添加visitor_name,当我添加它时,我看到的是所有访问,而不仅仅是第一次访问!

使用SQL Server。

请帮助-谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用row_number()生成唯一的序列以获取第一个访客名称:

select *
from (select c.customer_name, v.visit_date, v.visitor_name, 
             row_number() over (partition by c.customer_name order by v.visit_date) as seq
      from customers c left join  
           Visits v
           on . . . -- provide key to JOIN
      ) t
where seq = 1;