gpt4 book ai didi

sql-server-2008 - SQL Server 最大函数

转载 作者:行者123 更新时间:2023-12-02 04:53:44 26 4
gpt4 key购买 nike

我有以下查询:

SELECT
a.name, a.address, n.date, n.note
FROM a
LEFT JOIN n ON a.id = n.id

a.idn.id是一对多的关系,所以一个名字可以关联多个笔记。

如何只返回每个名字的最新笔记而不是所有笔记?

我正在使用 SQL Server 2008。

谢谢。

最佳答案

这是使用 ROW_NUMBER()

的一种方法
SELECT t.name, t.address, t.date, t.note
FROM (
SELECT
a.name, a.address, n.date, n.note,
ROW_NUMBER() OVER (PARTITION BY a.name ORDER BY n.date DESC) rn
FROM a
LEFT JOIN n ON a.id = n.id
) t
WHERE t.rn = 1

或者你可以使用相关的子查询来获取最大日期,就像这样

SELECT
a.name, a.address, n.date, n.note
FROM a
LEFT JOIN n ON a.id = n.id
WHERE n.date = (SELECT MAX(nn.date)
FROM n AS nn
WHERE a.id = nn.id)

关于sql-server-2008 - SQL Server 最大函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18362338/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com