2017-08-23 1 views
1

Comment faire pour additionner les entiers tels quels et traiter les nombres flottants comme 1.Numéros arrondis de somme SQL et nombre décimal

Dans le tableau ci-dessous le résultat attendu est:

1 + 1 + 1 + 5 = 8 

colum1 colum2 

aa  1 

bb  0.5 

cc  3.66 

dd   5 
+1

Pouvez-vous s'il vous plaît expliquer la question plus loin? Comment 3.66 est-il considéré comme 1 dans votre demande? – Shrinath

+0

J'ai mis à jour la question. Peut-être que c'est lisible maintenant. Vous pouvez regarder @Shrinath – 1000111

+0

Si la valeur en virgule flottante est 3.00, devrait-il être traité comme s'il était 3 ou comme 1? –

Répondre

0

Vous pouvez comparer chaque numéro à sa valeur parqueté pour vérifier si elle est une décimale ou non, puis utilisez un case expression pour traiter les nombres décimaux comme 1:

SELECT CAST(SUM(CASE number WHEN FLOOR(number) THEN number ELSE 1 END) AS INTEGER) 
FROM mytable;