SQL选择最大值w/左连接
有时,它们是数字的多个条目,我只需要从表b中选择最大数字,但是,当我尝试时SQL选择最大值w/左连接,sql,sql-server,left-join,Sql,Sql Server,Left Join,有时,它们是数字的多个条目,我只需要从表b中选择最大数字,但是,当我尝试时 SELECT a.first, a.last, b.number, c.last_login FROM Table1 a LEFT JOIN Table2 b ON a.first = b.first AND a.last = b.last LEFT JOIN Table3 c ON b.number = c.number 我犯了一个错误。如何选择最大b.number?编辑:我已经很多年没有使用SQLServer了,但
SELECT a.first, a.last, b.number, c.last_login
FROM Table1 a
LEFT JOIN Table2 b ON a.first = b.first AND a.last = b.last
LEFT JOIN Table3 c ON b.number = c.number
我犯了一个错误。如何选择最大b.number?编辑:我已经很多年没有使用SQLServer了,但也许分析功能可以做到这一点
SELECT a.first, a.last, MAX(b.number), c.last_login
你能证实这一点吗?我没有sqlserver,但在oracle上存在(…)上的MAX()。
如果您想要使用的最大值,LAST_值不是应用于OVER analitics的唯一关键字
SELECT v.first, v.last, c.number, c.last_login
FROM (
SELECT a.first, a.last, LAST_VALUE(b.number) OVER (PARTITION BY a.first, a.last ORDER BY a.first, a.last, b.number) AS yourmax
FROM Table1 a
LEFT JOIN Table2 b ON a.first = b.first AND a.last = b.last
GROUP BY a.first, a.last
) v
INNER JOIN Table3 c ON v.yourmax = c.number
尝试添加分组依据:分组依据a.first、a.last、c.last\u登录
SELECT a.first, a.last, b.MaxNumber, c.last_login
FROM Table1 a
LEFT JOIN (select tmp.first, tmp.last, max(tmp.number) MaxNumber from Table2 tmp
group by tmp.first, tmp.last
) b
ON a.first = b.first AND a.last = b.last
LEFT JOIN Table3 c ON b.MaxNumber = c.number