gpt4 book ai didi

sql - 如何在连接两个表时找到列的最大值而不使用 rownumber 函数?

转载 作者:行者123 更新时间:2023-11-29 11:04:39 25 4
gpt4 key购买 nike

有如下两个表。这里的要求是获取表1中每个字母的ID和日期。如果一个字母有多个条目,则获取日期最新的条目。

我尝试连接表并使用行号和分区方法来获得预期的结果,这可行,但是有没有更好的方法来处理它?<​​/p>

表1

S.no |  Alphabet
-----|-----
1 | A
2 | B
3 | C

表2

Alphabet |    ID   |    DATE 
---------|---------|----------
A | A1 | 21/12/2016
A | A2 | 22/12/2016
C | C1 | 25/12/2016
C | C2 | 27/12/2016
C | C3 | 24/12/2016
B | B1 | 23/12/2016

预期结果

S.no    | Alphabet   | ID    | Time
--------|------------|-------|-------
1 | A | A2 | 22/12/2016
2 | B | B1 | 23/12/2016
3 | C | C2 | 27/12/2016

最佳答案

你可以通过一系列的连接来完成你想要的事情。将两个表连接在一起,然后使用第二个连接到子查询,该子查询查找每个字母表的最新记录。

SELECT t1.`s.no`,
t1.Alphabet,
t2.ID,
t2.Time
FROM table1 t1
INNER JOIN table2 t2
ON t1.Alphabet = t2.Alphabet
INNER JOIN
(
SELECT Alphabet, MAX(TIME) AS max_time
FROM table2
GROUP BY Alphabet
) t3
ON t2.Alphabet = t3.Alphabet AND
t2.TIME = t3.max_time

关于sql - 如何在连接两个表时找到列的最大值而不使用 rownumber 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41609557/

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