2016-12-22 1 views
0

각 대출 번호를 검색하려고합니다. 각 달에 대출 번호가 몇 번 나타나는지 계산합니다. 따라서 어떤 경우 대출 금액이 한 달에 두 번 나타납니다. 그러나 매월 한 번 계산되도록하고 싶습니다. TEST 및 RD 열은 내가 필요한 것을 제공하지 않습니다. 다음은 내가 가지고있는 것입니다.하위 쿼리의 COUNT (DISTINCT)

select 
[Month], 
one, 
LoanNumber, 
two, 
three, 
four, 
... 

count(distinct LoanNumber) as TEST, 
COUNT(LoanNumber) OVER() as RD 

from 

tableNAME LC 
where [month] ='12-2016' 
group by 
[Month], 
one, 
LoanNumber, 
two, 
three, 
four, 
... 

도와주세요!

답변

1

나는 그냥 같이, 당신의 윈도 수() 표현에 partition by 절을 추가하고, group by을 제거 할 필요가 있다고 생각 :

select 
[Month], 
one, 
LoanNumber, 
two, 
three, 
four, 
... 
COUNT(*) OVER (partition by Month, LoanNumber) as NumberOfOccurences 

from 

tableNAME LC 
where [month] ='12-2016' 
+0

안녕. 나는 그것이 다소 그것을 포함 할지도 모른다라고 생각했다. 그러나 그 것이 작동하지 않는다 – user2811136

+0

에 의해 그룹을 삭제하기 위해 편집되었다. 이것은 모든 행 (열 "1", "2", "3"등의 다양한 값 포함)을 보려는 경우 작동하지만 개수 자체가 반복됩니다. 이것은 보존을 위해 지불하는 가격입니다 모든 세부 사항을 요약하지만. 요약 만 원한다면 TableName의 간단한'Month, LoanNumber, COUNT (*) 선택, Month = '12 -2016 'Group by Month, LoanNumber'가 작동합니다. 덕분에 – SlimsGhost

0

당신이 BY 절 그룹에서 LoanNumber을해야합니다.

또한 월별로 loanNumber가 아닌 월별로 그룹화하려는 경우 SELECT 절에서 제외하십시오.

+0

. LoanNumber를 SELECT에서 꺼내면 제대로 작동하는 것 같습니다. LoanNumber를 표시하고 NumberOfOccurences를 부 풀리거나 LoanNumber를 표시하지 않고 올바른 것으로 말할 수 있습니까? 각 필드에 대해 – user2811136

+0

을 입력하면 그룹으로 그룹화하거나 그룹화하지 않을 수 있습니다. loanNumber와 독립적으로 그룹화하려면 select 또는 group by 절에 포함시키지 말고 count (distinct loannumber)와 같이 집계 함수를 적용합니다. 'numberOfOccurences'를 참조하는 위치가 보이지 않는 경우 – Beth

+0

죄송합니다. 위 응답에서 봤습니다. 당신은 그것을 필요로하지 않는다, 달 (별개 loanNumber)는 당신을 거기에 줄 것이다. – Beth