Ich möchte die Anzahl der unterschiedlichen Elemente in einer Spalte zählen, die einer bestimmten Bedingung unterliegen, z. B. wenn die Tabelle wie folgt aussieht:
tag | entryID
----+---------
foo | 0
foo | 0
bar | 3
Was kann ich tun, wenn ich die Anzahl der unterschiedlichen Tags als "Tag-Anzahl" und die Anzahl der unterschiedlichen Tags mit der Eintrags-ID> 0 als "positive Tag-Anzahl" in derselben Tabelle zählen möchte?
Ich zähle jetzt aus zwei verschiedenen Tabellen, in denen ich in der zweiten Tabelle nur die Zeilen mit einer Eintrags-ID größer als Null ausgewählt habe. Ich denke, es sollte einen kompakteren Weg geben, um dieses Problem zu lösen.
Versuchen Sie die folgende Aussage:
Das erste Feld ist das Tag, das zweite die gesamte Anzahl, das dritte die positive Anzahl.
quelle
Dies kann funktionieren:
und
quelle
Dies kann auch funktionieren:
Sie benötigen die entryID-Bedingung im linken Join und nicht in einer where-Klausel, um sicherzustellen, dass alle Elemente, die nur eine entryID von 0 haben, im ersten DISTINCT ordnungsgemäß gezählt werden.
quelle
Code zählt die eindeutige / eindeutige Kombination von Tag- und Eintrags-ID, wenn [Eintrags-ID]> 0 ist
In der Ausgabe wird die Anzahl der eindeutigen Werte angezeigt. Ich hoffe, dies hilft
quelle