仅在该时间段内按最大(日期)和计数(项目)分组

问题描述 投票:0回答:1

我有一张桌子,里面有不同日期的多个盒子里的物品。我想输出最近一段时间持有的物品数量。

输入:

Name    Item    Date
Box 1   ItemA   7/31/2023
Box 1   ItemB   7/31/2023
Box 1   ItemC   7/31/2023
Box 1   ItemA   6/30/2023
Box 2   ItemA   12/31/2022
Box 2   ItemB   12/31/2022
Box 2   ItemC   12/31/2022
Box 2   ItemD   12/31/2022
Box 2   ItemA   3/31/2023
Box 2   ItemB   3/31/2023
Box 2   ItemC   3/31/2023
Box 2   ItemD   3/31/2023
Box 2   ItemE   3/31/2023
Box 2   ItemF   3/31/2023

输出:

Name    Max_Date    #Items
Box 1   7/31/2023   3
Box 2   3/31/2023   6

我的代码返回最大(日期),但不是只计算该时间段内的项目,而是计算与该框关联的所有项目。

Name    Max_Date    #Items
Box 1   7/31/2023   4
Box 2   3/31/2023   10

我需要一个 group by 和 2 个内部联接吗?

sql group-by inner-join
1个回答
0
投票

您可以使用以下方法计算不同的项目:

select
  name,
  max(date),
  count(distinct item)
from t
group by name
© www.soinside.com 2019 - 2024. All rights reserved.