我有 2 个表 - 一个帐户表和一个用户表。每个帐户可以有多个用户。我有一个场景,我想对这两个表执行单个查询/联接,但我想要所有帐户数据 (Account.*),并且只需要first用户数据集(特别是他们的名字)。
我不想对聚合组执行“最小”或“最大”操作,而是想做“第一个”操作。但是,显然,TSQL 中没有“第一个”聚合函数。
关于如何获取此查询有什么建议吗?显然,很容易得到Account x Users的笛卡尔积:
SELECT User.Name, Account.* FROM Account, User
WHERE Account.ID = User.Account_ID
但是我如何才能根据 User.ID 的顺序仅从产品中获取第一个用户呢?
与其分组,不如这样……
select
*
from account a
join (
select
account_id,
row_number() over (order by account_id, id) -
rank() over (order by account_id) as row_num from user
) first on first.account_id = a.id and first.row_num = 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)