У меня есть таблица с этими значениями
create table LoanExample (
LoanId int,
ConstraintId int,
BorrowerName varchar(128));
insert into LoanExample values (1, null, 'Jack')
insert into LoanExample values (1, 33, 'July')
insert into LoanExample values (2, 78, 'Mike')
insert into LoanExample values (2, 72, 'Wayne')
insert into LoanExample values (3, null, 'David')
insert into LoanExample values (3, 79, 'Chris')
insert into LoanExample values (4, null, 'Finn')
insert into LoanExample values (4, null, 'James')
Я хочу подсчитать ограничения каждого LoanId, даже если его значение равно null
, и добавить его во временную таблицу.
Я попробовал это
select
LoanId,
Constraints_Count = count(ConstraintId)
into #Test
from LoanExample
group by LoanId
Но этот запрос игнорирует все нулевые значения в функции подсчета и выдает мне предупреждающее сообщение «Предупреждение: нулевое значение устраняется агрегатом или другой операцией SET».!
Я ожидал, что Constraints_Count
каждого LoanId будет равен 2, но для LoanId, у которого значение ConstraintId
равно нулю, будет уменьшенное значение в Constraints_Count
.
Итак, дляLoanId 1 и 3 я получаю Constraints_Count
как «1», но я ожидаю «2», а для LoanId 4 я получаю Constraints_Count
как «0», но я ожидаю «2».
Я полагаю, что могуиспользуйте ROW_NUMBER()
, но я не совсем уверен, как.