Ich bin ziemlich neu in SQL und bin einige Probleme mit dem letzten Schritt in einer etwas komplizierten SQL-Abfrage mit. Ich möchte zählen, wie oft in der Tabelle zwei unterschiedliche Werte in mehr als einer Zeile erscheinen.Count Anzahl der Male, 2 verschiedene Werte erscheinen in mehr als 1 Zeile in SQL Tabelle
Mein spezielles Szenario ist, dass meine Tabelle speichert Nachrichten/Alerts zu und von einem System. Diese Warnungen werden an mehrere Personen gesendet, die eine Antwort benötigen. Ich möchte zählen, wie viele der Empfänger auf jede Warnung reagiert haben.
Ich habe meine Anfrage an den Teil bearbeitet bis ich stecke, was das ist:
SELECT DISTINCT AlertID, count(RecipientID) - count(Distinct RecipientID) as Replies,
FROM [myDB].[dbo].[Alerts]
Diese Abfrage zeigt, wie viele Nachrichten jeder Alarm in ihm, nicht an jeden Empfänger der ursprünglichen Nachricht einschließlich von das System. Das Problem dabei ist, dass, wenn jemand zweimal auf einen einzigen Alarm reagiert, als zwei Antworten gezählt als 1 apposed (das ist, was ich will).
Ich dachte, ich könnte dies tun, indem jede einzelne alertId zählen und wie oft eine ID DISTINCT Empfänger wird mit der alertId in mehr als 1 Zeile. Es würde keine Rolle, ob jemand zweimal reagiert, denn solange es mehr als einer ist es als eine einzige Antwort gezählt wird. Ich habe Probleme, das zum Laufen zu bringen.
Meine Daten sieht wie folgt aus:
RecipientID MsgContents SentBy AlertID
12345 Msg1 mySystem 11111
98765 Msg1 MySystem 11111
12345 1st Reply to Msg1 John Doe 11111
12345 2nd Reply to Msg1 John Doe 11111
98765 reply to Msg1 Mike Smith 11111
12345 Msg3 mySystem 33333
12345 Reply to Msg3 John Doe 33333
12345 Msg2 mySystem 99999
ich die Ausgabe der Abfrage sein möchte:
AlertID Replies
11111 2
33333 1
99999 0
Ich dachte this answer würde helfen, aber es könnte nicht an die Arbeit mich. Ich möchte es auch möglichst in einer Abfrage behalten, da das System mit großen Datenmengen zu tun haben wird. Wenn dies nicht der einfachste Weg ist, bin ich offen für alle Vorschläge.
Jede Hilfe würde sehr geschätzt werden.
Sie sollte wahrscheinlich erwähnen, dass von 'mySystem' gesendete Datensätze nicht zählen sollten. – Ash