2017-12-05 1 views
0

i wie diese mit einer Tabelle "Schiffe" arbeiten:Zählen Reihen mit einer Bedingung

shipid 
container1 
container2 

shipid und container1 immer gefüllt sind, container2 optional.

Dies ist meine Frage jetzt:

SELECT COUNT(container1) FROM table 

Wie kann ich erreichen, dass diese Abfrage auch die Menge des container2 der zählt ?!

Es muss eine Join-Abfrage dieser beiden Abfragen gemacht werden:

SELECT COUNT(container1) FROM table 
SELECT COUNT(container2) FROM table WHERE container2!='' 

Vielen Dank für alle Hinweise!

+0

Haben Sie container1 und container2 zählt oder haben die Zählungen separat summieren möchten? Die Frage ist nicht klar – nizantz

Antwort

1
SELECT COUNT(container1) FROM table 
UNION 
SELECT COUNT(container2) FROM table 
1

können Sie verwenden SUM

SELECT 
    SUM(container1) AS c1 
    ,SUM(CASE WHEN container2 IS NOT NULL THEN 1 ELSE 0 END) AS c2 
FROM ships 
0

zu den vorherigen Antworten hinzuzufügen, können Sie dies tun, um die Zählung in 1 Ergebnis zu erhalten.

SELECT SUM(count) FROM 
    (
    SELECT COUNT(container1) as count FROM table 
    UNION ALL 
    SELECT COUNT(container2) as count FROM table 
) as a 

oder Sie können dies tun:

SELECT COUNT(*) FROM 
    (
    SELECT container1 FROM table 
    UNION ALL 
    SELECT container2 FROM table 
) as a 
Verwandte Themen