gpt4 book ai didi

sql - 为另一个表中的每个 ID 从表中选择前 1 个

转载 作者:行者123 更新时间:2023-12-04 12:40:03 26 4
gpt4 key购买 nike

表结构是:

create table fruit (
id int identity(1,1),
name varchar(max)
)

create table fruit_allocation (
id int identity(1,1),
fruit_id int references fruit(id),
customer_id int references store(id),
amount float,
)

create table measurement (
fruit_allocation_id int references fruit_allocation(id),
measurement_date datetime,
measurement float,
)

每个水果可以分配给多个客户,创建一个 Fruit_allocation 记录。每个fruit_allocation 记录可以有多个度量。

我想为每个给定水果 ID 的水果分配选择最新的测量值

到目前为止,我有以下几点:
select * 
from measurement
where fruit_allocation_id in (select id
from fruit_allocation
where fruit_id = 10)

这将返回该水果的所有测量值,我只想为每个水果分配返回 1 个测量值。

最佳答案

您可以 CROSS APPLY

select a.*, m.*
from fruit_allocation a
cross apply (
select top 1 *
from measurement m
where m.fruit_allocation_id = a.id
order by m.measurement_date desc
) m
where a.fruit_id = 10

关于sql - 为另一个表中的每个 ID 从表中选择前 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5073089/

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