Zählen Sie zwei verschiedene Spalten

8

Also ich habe diese Tabelle in meiner Datenbank

%Vor%

und ich möchte zeigen, wie viele Elemente in einer Spalte Rot und in einer anderen Spalte Neu sind:

%Vor%

Ich weiß, wie man sie in zwei Tabellen anzeigt, weiß aber nicht, wie man sie kombiniert.

%Vor%

Dies scheint nicht zu funktionieren, da es nur Elemente zeigt, die mit Aaa gekennzeichnet sind und ich habe Schwierigkeiten zu verstehen, was ich hier falsch mache.

    
user1317885 06.04.2012, 17:30
quelle

2 Antworten

14

Dies ist ein Job für SUM(CASE) :

%Vor%

Die Idee hier ist, dass Sie für alle Red -Zeilen eine 1 zuweisen (andere erhalten eine 0) und addieren Sie diese 1 und 0, um die Anzahl zu erhalten. Dasselbe gilt für die New -Werte.

Sie können das Gleiche auch etwas kürzer machen, indem Sie auch die boolesche 0/1-Bewertung von MySQL ausnutzen:

%Vor%

In diesem Beispiel gibt Cat1 = 'Red' eine 1 zurück, wenn sie wahr ist, und diese werden aufsummiert. Die SUM(CASE) -Methode wird in RDBMS anders als MySQL portabler sein, wenn andere Systeme ihre Booleans anders behandeln.

Bearbeiten:

Um das zu verdeutlichen, werden Sie diese in PHP als $row['Red'] und $row['New'] abrufen. Sie können die Aliase einfach auf das ändern, was Sie brauchen: AS Red to AS CountItem , um zu Ihrem Original zu passen ...

%Vor%     
Michael Berkowski 06.04.2012, 17:34
quelle
1
%Vor%     
Arion 06.04.2012 17:36
quelle

Tags und Links