2016-12-22 2 views
0

Ich versuche, jede Darlehensnummer mit der Anzahl, wie oft die Kreditnummer in jedem Monat erscheint, abrufen. In einigen Fällen erscheint die Darlehensnummer zweimal im Monat, aber ich möchte nur einmal pro Monat gezählt werden. TEST- und RD-Spalten geben mir nicht, was ich brauche. Hier ist, was ich habe:COUNT (DISTINCT) in Unterabfrage

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, 
... 

Bitte um Hilfe!

Antwort

1

Ich denke, man muss nur eine partition by Klausel zu Ihrer Windowing Zählung hinzufügen() Ausdruck, und entfernen Sie die group by, wie folgt aus:

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

from 

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

Hallo. Ich dachte irgendwie, dass es dazu gehören könnte, aber es funktioniert nicht – user2811136

+0

bearbeitet, um Gruppe zu entfernen. Dies funktioniert, wenn Sie alle Zeilen sehen möchten (einschließlich der verschiedenen Werte für die Spalten "eins", "zwei", "drei" usw.), aber die Zählung selbst wird wiederholt - das ist der Preis, den Sie für die Erhaltung bezahlen alle Details, aber die Zusammenfassung bekommen. Wenn Sie nur die Zusammenfassung möchten, dann eine einfache 'Select Monat, Darlehensnummer, COUNT (*) von TableName, wobei Monat = '12-2016' Gruppe von Monat, LoanNumber 'funktionieren würde. – SlimsGhost

0

Sie LoanNumber aus Ihrem GROUP BY-Klausel zu nehmen.

Auch, nehmen Sie es aus Ihrer SELECT-Klausel, wenn Sie nach Monat gruppieren möchten, und nicht jede loanNumber innerhalb des Monats.

+0

danke. sieht so aus, als ob es gut funktioniert, wenn ich die LoanNumber aus dem SELECT nehme. Also sagst du, dass ich entweder LoanNumber zeigen kann und die NumberOfOccurences aufgebläht sein oder NICHT die LoanNumber anzeigen kann und sie korrekt sein? – user2811136

+0

für jedes Feld, entweder möchten Sie nach oder nicht gruppieren. Wenn Sie unabhängig von loanNumber gruppieren möchten, fügen Sie sie nicht in die Klausel select oder group by ein, und Sie wenden eine Aggregatfunktion wie count (distinct loannumber) an. Nicht zu sehen, wo Sie auf 'numberOfOccurences' verweisen – Beth

+0

Entschuldigung, sah es in der Antwort oben. Sie brauchen es nicht, count (distinct loanNumber) gruppiert nach Monat wird Sie dorthin bringen. – Beth