2017-08-17 1 views
0

Ich versuche festzustellen, wie viele eindeutige Werte aus einer Spalte nach Werten in einer anderen Spalte gruppiert werden können.SQL: Auswählen anderer Werte für eine andere Spalte

Es gibt viele Spalten in meinem Blatt, aber die, die ich in interessiert bin: ‚Abteilung‘ und ‚user‘

Wie die Daten, dass für diese beiden Spalten ist, gibt es Wiederholungs Benutzer mit demselben Abteilung.

Eg.

Department User 

Insights  Mike 

Insights  Mike 

Insights  Chris 

Market  Julie 

Research  Will 

Research  Sabrina 

Research  Bryan 

Was ich möchte, ist folgendes:

Department DistinctUsers 

Insights  2 

Market   1 

Research  3 

Meine grundlegende SQL-Kenntnisse sagt mir, das ist die Struktur des Codes:

SELECT department, COUNT(DISTINCT user) 
FROM Sheet1 
GROUP BY department, user 

ich gesehen habe, dass die Menschen umsetzen würden in der FROM Klausel, aber ich hav Das konnte nicht in den Code integriert werden.

Irgendwelche Vorschläge oder Tipps werden sehr geschätzt!

Danke!

+1

Von Ihrer Erklärung, sollten Sie Ihre Abfrage arbeiten. Aber Beispieldaten und erwartete Ausgabe wird benötigt. Ihr Versuch, Probendaten zu analysieren, ist unklar. – scsimon

+0

Mein Fehler scheint mit dem "COUNT (Distinct user)" zu kommen. Im Wesentlichen suche ich die Abteilungen zu gruppieren und die einzigartigen Benutzer in jeder Abteilung zu zählen - hoffe, dass es ein bisschen aufräumt – wra

+0

Nun, das ist genau, was diese Abfrage tut. Entfernen Sie einfach den 'user' aus der' group by'. Auch mysql <> SQL-Server. Wähle ein Tag aus. Auch was hat das mit ms-access zu tun? – scsimon

Antwort

4

Wie in den Kommentaren erwähnt, müssen Sie nur Benutzer von der Gruppe entfernen.

SELECT 
    department, 
    COUNT(DISTINCT [user]) as CT 
FROM Sheet1 
GROUP BY department 

ACCESS

SELECT 
    department, 
    count([user]) 
FROM 
    (SELECT DISTINCT department, [user] from Sheet1) as x 
GROUP BY 
    department 
+0

Seine Korrektheit..Es gibt erwartetes Ergebnis –

+0

Gibt es eine M̦glichkeit, dies anzupassen, damit es auch in Microsoft Access funktioniert? Рwra

+0

Sure @wra siehe Bearbeiten. – scsimon

1

Ihr Code wird die Arbeit erledigen, aber keine Notwendigkeit zu einer Gruppe durch den Benutzer

+0

Dies ist falsch und zeigt 3 Benutzer für die Abteilung "Insights" anstelle der erwarteten 2 – yanman1234

+0

das ist falsch, da sie unterschiedliche Benutzer wollen. – scsimon

+0

Ich habe meine Antwort dann geändert :) – Cloud

0
BEGIN TRAN 

CREATE TABLE #TMP (Department NVARCHAR(50),Name NVARCHAR(50)) 

INSERT INTO #TMP 
SELECT 'Insights', 'Mike' UNION ALL 

SELECT 'Insights','Mike' UNION ALL 

SELECT 'Insights','Chris'UNION ALL 

SELECT 'Market' ,'Julie' UNION ALL 

SELECT 'Research', 'Will'UNION ALL 

SELECT 'Research', 'Sabrina'UNION ALL 

SELECT 'Research','Bryan' 

SELECT * FROM #TMP 

SELECT department, COUNT(DISTINCT NAME) 
FROM #TMP 
GROUP BY department 

ROLLBACK TRAN 
Verwandte Themen