我现在正在处理一个表,它有两个变量-householdid和donationid。我想计算每个捐赠的独特家庭的数量,所以我想以某种方式过滤我的表,这样我就只能得到第一次捐赠给基金的家庭的结果。在这种情况下,我想过滤结果,得到第一个琼斯捐赠给癌症基金,琼斯捐赠给罗纳德-麦当劳基金,史密斯捐赠给罗纳德-麦当劳基金。如何在sql中指定这个?
wz8daaqr1#
您可以使用聚合:
select household, donation, min(date) from donations group by household, donation;
如果表中有其他列,则使用相关子查询或 row_number() --是否合适:
row_number()
select d.* from donations d where d.date = (select min(d2.date) from donations d2 where d2.household = d.household and d2.donation = d.donation );
p5fdfcr12#
如果您真的只是在寻找唯一的计数:
select Donation, count(distinct Household) as Households from donations group by Donation
2条答案
按热度按时间wz8daaqr1#
您可以使用聚合:
如果表中有其他列,则使用相关子查询或
row_number()
--是否合适:p5fdfcr12#
如果您真的只是在寻找唯一的计数: