2017-05-22 8 views
-1

Wie kann ich die Bedingungen erfüllen? Ich muss die Anzahl der Datensätze zählen, die die BedingungenAnzahl der Vorkommen zählen

enter image description here

(A || B) && С 
(A || B) && !С 
(A || B) || С 

Beispiels erste Bedingung

(A || B) & & С

  • num = 1 - Passt zum Zustand. Präsentiert in CAT = A, CAT = B und CAT = C

  • num = 2 - Für den Zustand. Präsentiert in CAT = A und CAT = C

  • num = 3 - Nicht geeignet je nach Zustand. Nur in CAT = C (Ausdruck (A || B) & & С ist falsch)

Ergebnistabelle Also für Ausdrücke

COLUMN_EXP    COUNT 
(A || B) && С   2 
(A || B) && !С   0 
(A || B) || С   3 
+0

haben Sie eine SQL-Anweisung versucht? – Randy

+0

Was haben Sie vor? – LeshaRB

Antwort

3

Abfrage sieht:

SET DEFINE OFF; 

SELECT * 
FROM (
    SELECT COUNT(CASE WHEN (A > 0 OR B > 0) AND C > 0 THEN 1 END) AS "(A||B)&&C", 
     COUNT(CASE WHEN (A > 0 OR B > 0) AND C = 0 THEN 1 END) AS "(A||B)&&!C", 
     COUNT(CASE WHEN (A > 0 OR B > 0) OR C > 0 THEN 1 END) AS "(A||B)||C" 
    FROM your_table 
    PIVOT (COUNT(*) FOR cat IN ('A' AS A, 'B' AS B, 'C' AS C)) 
) 
UNPIVOT(
    "COUNT" FOR COLUMN_EXP IN ("(A||B)&&C", "(A||B)&&!C", "(A||B)||C") 
); 

Ausgang:

COLUMN_EXP COUNT 
---------- ----- 
(A||B)&&C  2 
(A||B)&&!C  0 
(A||B)||C  3 
+0

Ich wollte gerade die PIVOT-Funktion erwähnen. Ein wunderbares Dienstprogramm für so etwas –

+0

Vielen Dank für Anwsser. Kann ich das mit Ausfällen für Zeiträume machen? Wählen Sie .... aus der Tabelle GROUP BY (TO_CHAR (Betriebszeit, 'JJJJ-MM') ' – LeshaRB

+0

Vielen Dank für die Richtung der Lösung. – LeshaRB

Verwandte Themen