Работа с двумя уникальными значениями в SQL - PullRequest
0 голосов
/ 09 июля 2020

Я сейчас работаю с таблицей, в которой есть две переменные - HouseholdID и DonationID. Я хочу подсчитать количество уникальных домохозяйств на одно пожертвование, поэтому я хочу каким-то образом отфильтровать свою таблицу, чтобы у меня были результаты только для ВПЕРВЫХ домохозяйств, пожертвованных в фонд.

введите описание изображения здесь

В этом случае ^ я хотел бы отфильтровать результаты, чтобы получить первое пожертвование Джонса в фонд борьбы с раком, пожертвование Джонса в фонд Рональда Макдональда и пожертвование Смита в фонд Рональда Макдональда. Как это указать в SQL?

Ответы [ 2 ]

0 голосов
/ 09 июля 2020

Если вы действительно просто ищете уникальное количество:

select Donation, count(distinct Household) as Households from donations group by Donation
0 голосов
/ 09 июля 2020

Вы используете агрегирование:

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
               );
...