我有一张桌子,里面有不同日期的多个盒子里的物品。我想输出最近一段时间持有的物品数量。
输入:
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 个内部联接吗?
您可以使用以下方法计算不同的项目:
select
name,
max(date),
count(distinct item)
from t
group by name