我有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。
请帮助-谢谢。
答案 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;