2017-09-10 1 views
-1

Exemple: Il y a des données dans la base de données (Chaque numéro est dans un autre domaine):comment compter le nombre d'occurrences dans les données (Dans plusieurs champs)

1 | 2 | 2 | 3 | 4 | 5 | 2 

Maintenant, comment puis-je le nombre d'occurrences du nombre 2? S'il vous plaît aidez-moi, merci!

+0

Voulez-vous les occurences par ligne? ou sur toute la table? – Jakumi

+0

Je voudrais sélectionner toutes les rangées d'occurrences 2 plus de 3 fois Dans tout le tableau – bfther

+0

c'est au-delà de votre question initiale et la réponse de sagi est correcte. (sa réponse fournit le nombre par ligne) mais vous pouvez juste 'WHERE CalculatedColumn> 3' – Jakumi

Répondre

1

Vous pouvez utiliser CASE EXPRESSION:

SELECT t.*, 
     CASE WHEN t.Col1 = 2 THEN 1 ELSE 0 END + 
     CASE WHEN t.Col2 = 2 THEN 1 ELSE 0 END + 
     CASE WHEN t.Col3 = 2 THEN 1 ELSE 0 END + 
     .... as CalculatedColumn 
FROM YourTable t 
+0

Merci d'avoir répondu à ma question, j'ai essayé votre méthode et obtenez l'erreur: Erreur SQL DB2: SQLCODE = -206, SQLSTATE = 42703, SQLERRMC = AS, DRIVER = 4.19.49. 2) [Code: -727, état SQL: 56098] Erreur SQL DB2: SQLCODE = -727, SQLSTATE = 56098, SQLERRMC = 2; -206; 42703; AS, DRIVER = 4.19.49 – bfther

+0

Voici ma façon d'appeler: SELECT t. *, CASE WHEN t.f1wr_count = 0 ALORS 1 ELSE 0 END + CASE WHEN t.f2wr_count = 0 ALORS 1 ELSE 0 END + CASE WHEN t.f3wr_count = 0 ALORS 1 ELSE 0 END + CASE WHEN t.f4wr_count = 0 PUIS 1 SINON 0 FIN + CAS TENDU qfccount = 0 PUIS 1 SINON 0 FIN + ETUDE WHITE t.f6wr_count = 0 PUIS 1 SINON 0 FIN + ETUDE WHITE t.f7wr_count = 0 PUIS 1 AUTRE 0 END + comme CalculatedColumn FROM H032.SCC_ROLLDATA t – bfther

+0

Enlever le dernier signe '+', c'est un extra @bfther -> 'ELSE 0 END + comme Calc..' – sagi