Sql 分组方式,同时选择更多列

Sql 分组方式,同时选择更多列,sql,oracle11g,group-by,grouping,Sql,Oracle11g,Group By,Grouping,我有一个疑问: select first_name, last_name, MAX(date) from person p inner join address a on a.person_id = p.id group by first_name, last_name 人员(sid、姓、名)、地址(数据、cp、sid、城市) 我的问题是如何进行查询,以选择名字、姓氏、最大(日期)、城市、cp 不向组中添加城市和cp 我的意思是,我想要所有5列,但只针对按名字、姓氏和日期分组的数据 非常感谢

我有一个疑问:

select first_name, last_name, MAX(date)
from person p inner join
address a on 
a.person_id = p.id
group by first_name, last_name
人员(sid、姓、名)、地址(数据、cp、sid、城市)

我的问题是如何进行查询,以选择名字、姓氏、最大(日期)、城市、cp 不向组中添加城市和cp

我的意思是,我想要所有5列,但只针对按名字、姓氏和日期分组的数据


非常感谢

这是不可能的。假设您的数据库中有三个John Smith,每个人都有一个或两个地址。如果你现在按名字分组,那么你想要哪个城市?约翰·史密斯所在的城市和他的哪个地址?由于这个问题没有隐含的答案,因此在编写select语句时,必须明确说明要选择哪个城市。

以及应该选择哪个城市和cp?。由于您是按其他列分组的,因此您可以将这些列添加到
分组依据中,或者对它们执行聚合功能:
选择名字、姓氏、最大(日期)、最大(城市)、最大(cp)
或者,您需要某种方法来选择您想要的一个;命令。