Ich hämmere meinen Kopf gegen die Wand, hier. Ich habe Dutzende von StackOverflow-Fragen untersucht, die ähnlich sind, und sie bringen mich näher, aber ich habe noch keinen gefunden, der das tut, was ich brauche. Ich habe Tausende von Fragen in einer Datenbank mit Antworten von mehreren Benutzern auf jede Frage. Ich muss die Antworten aggregieren, um die Anzahl der eindeutigen Antworten pro Frage anzuzeigen. Das ist der einfache Teil; Wo ich stolpere, ist das Hinzufügen einer Summenspalte, um die Gesamtzahl der Antworten für jede Frage anzuzeigen. Ich kann es tun, wenn ich die Where-Klausel auf bestimmte Fragen beschränke, aber ich versuche, wenn möglich alles in eine Abfrage zu bringen. Hier ist die Frage:Zählen (*) und Summe in der gleichen Zeile
select c.ID, a.userID. c.question, a.answer, count(a.answer) as cnt
from NotableAnswers a, categories b, questions c
where c.fkCategory = b.ID and a.questionID = c.ID and b.ID = 18
Group By a.answer, c.ID, c.question
Order By c.ID, answer asc
Was ich brauche, ist eine Ergebnismenge, die wie diese zusammen mit der Summe von
ID | userID | Question | Answer | cnt | totcnt
------------------------------------------------------------------
175 | 10318 |Favorite... |Dropbox | 15 | 35
175 | 10354 |Favorite... |Box | 2 | 35
175 | 10323 |Favorite... |Google Drive | 15 | 35
175 | 103111 |Favorite... |Cubby | 3 | 35
186 | 10318 |Best IDE... |IntelliJ | 4 | 12
186 | 103613 |Best IDE... |Android Studio| 6 | 12
186 | 103117 |Best IDE... |Eclipse | 2 | 12
Dieser Satz zeigt die Antwort als ein Aggregat und die Zählung dieser spezifischen Antwort aussieht die Anzahl der Antworten für jede einzelne Frage.
Alle und alle helfen sehr geschätzt.
Ernsthaft zu schnell ... Ich war gerade dabei, dies zu posten. – scsimon
Wie ist 'a.userID' in der' SELECT' Anweisung? Es ist nicht in der Gruppe von oder einer AGGREGATE-Funktion. – CodyMR
Vielen Dank für die sehr schnelle Antwort und das sanfte Anstupsen zur richtigen Syntax. Ich nehme an, irgendwo da drin hätte ich erwähnen sollen, dass es nicht meine Frage ist, ich habe sie einfach geerbt. Aber das ist nicht relevant für das Problem und ich habe es geändert, um den Kontext ein wenig klarer zu machen, was bedeutet, dass ich vergessen habe, userID in die Group By aufzunehmen. Mein Fehler. Aber noch einmal vielen Dank für die schnelle, genaue und sehr hilfreiche Antwort. – crazybobcat