2016-03-29 4 views
0

Wie kann ich die Anzahl der Zeilen zählen, bei denen eines der Spaltenfelder wahr ist? oder Wie kann ich die Anzahl der Benutzer zählen, für die eine der Spalten auf True festgelegt ist?Wie kann ich die Anzahl der Zeileninstanzen zählen, bei denen ein Wert aus einer der Spalten auf "True" gesetzt ist?

Beispiel:

User Name Last Name 
1 TRUE TRUE 
2 FALSE TRUE 
3 TRUE FALSE 
4 FALSE FALSE 
5 FALSE FALSE 

Für das obige Beispiel die Anzahl der Zeilen oder die Benutzer in dem der Name oder Nachname wahr ist, ist gleich 3 (Benutzer 1, Benutzer 2 und Benutzer 3)

Antwort

0

Sie Ihr Ziel mit dieser Abfrage erreichen

SELECT COUNT(*) FROM [table] WHERE [row1] = true OR [row2] = true; 
+0

Sie für die Bemerkung danken, ich habe die LIKE bearbeitet, aber die [] ist, ihm zu sagen, wo er seine eigenen Daten setzt nicht auf schreibe sie so wie sie sind. – achref

1

können Sie eine IN Bedingung verwenden:

select count(*) 
from the_table 
where true in (name, last_name) 

Dies entspricht:

select count(*) 
from the_table 
where name = true 
    or last_name = true; 

where name = true or last_name = true kann where name or last_name

Aber die erste Abfrage ist einfacher, verkürzt werden, wenn sollte mehr Spalten anpassen z.B. aufgenommen werden true in (name, last_name, nick_name)


Um die Anzahl der Spalten zu erhalten, die wahr sind, können Sie einen Trick in Postgres verwenden, wo so ein boolean auf eine Zahl ergibt 1 oder 0 Gießen die Anzahl der Spalten zu erhalten, die true sind sie einfach aufaddieren :

select name::int + last_name::int as "Number of true values" 
from the_table 

SQLFiddle Beispiel: http://sqlfiddle.com/#!15/23a4a/1

Verwandte Themen