处理sql中的两个唯一值

q43xntqr  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(410)

我现在正在处理一个表,它有两个变量-householdid和donationid。我想计算每个捐赠的独特家庭的数量,所以我想以某种方式过滤我的表,这样我就只能得到第一次捐赠给基金的家庭的结果。

在这种情况下,我想过滤结果,得到第一个琼斯捐赠给癌症基金,琼斯捐赠给罗纳德-麦当劳基金,史密斯捐赠给罗纳德-麦当劳基金。如何在sql中指定这个?

wz8daaqr

wz8daaqr1#

您可以使用聚合:

select household, donation, min(date)
from donations
group by household, donation;

如果表中有其他列,则使用相关子查询或 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
               );
p5fdfcr1

p5fdfcr12#

如果您真的只是在寻找唯一的计数:

select Donation, count(distinct Household) as Households from donations group by Donation

相关问题