我有一张如下的table:
firstName lastName updateYear content UUID
John Doe 2010 ....... b2b31m
John Doe 2010 ....... dksdf2
Jane Doe 2015 ....... dsfs2k
Jane Doe 2017 ....... eien1n
Jack Doe 2019 ....... a2e93h
对于每个firstname-lastname对,我希望整行显示最大(最近)年份。如果最近一年有多个相同名字的条目,那么我最好输入最新的行(如果不可能,任何条目都可以)。
上表是这样的:
firstName lastName updateYear content UUID
John Doe 2010 ....... dksdf2
Jane Doe 2017 ....... eien1n
Jack Doe 2019 ....... a2e93h
2条答案
按热度按时间2guxujil1#
你不知道你用哪个数据库。一种非常方便有效的方法是使用行限制子查询进行过滤:
如果您有一个定义“最新条目”的列,那么您可以使用它来代替
uuid
在order by
子查询的子句。在sql server中,您将使用
select top (1) ...
而不是select ... limit 1
在子查询中。请注意,根据您的数据库,有更整洁的选项可用。例如,如果你在运行postgres
distinct on
很方便:xpcnnkqh2#
这可以通过使用
row_number()
. 请参阅下面的查询以获取您的答案