fonctions SQL globales en utilisant MIN et AVG
-
20-09-2019 - |
Question
Comment puis-je omettre dans mes données Zéros?
Par exemple en utilisant la fonction MIN? Je voudrais que la valeur minimum, sauf un 0 ...
Comment puis-je obtenir le prochain plus grand?
MIN(availables.price)
Aussi est-il un moyen de sauter généralement sur 0s de la même manière si j'utilise la fonction AVG? Le problème est la table que je ne l'ai hérité utilise pas les valeurs NULL, mais a 0.00 pour toutes les données financières.
Merci,
La solution
essayer:
SELECT
MIN(x)
FROM ....
where x<>0
fonctionne avec AVG trop:
SELECT
avg(x)
FROM ....
where x<>0
Autres conseils
vous utilisez Ruby on Rails? Je croyais que vous êtes car cela est étiqueté comme ruby-on-rails, dans ce cas, vous pouvez simplement faire
Available.minimum(:price, :conditions => "price > 0")
ou
Available.average(:price, :conditions => "price > 0")
espoir qui aide =)
SELECT MIN(CASE price WHEN 0 THEN NULL ELSE price END)
FROM availables
suffit de laisser les zéros de la requête avec une clause de where
.
select min(price)
from price_table
where price > 0;
select avg(price)
from price_table
where price > 0;
SELECT MIN(price)
FROM availables
WHERE price <> 0
Peut-être qu'il pourrait faire le travail
SELECT MIN(availables.price)
FROM availables
WHERE 0 < availables.price
SELECT MIN(availables.price) FROM availables WHERE availables.price <> 0.0
Vous pouvez également utiliser> si vous voulez exclure quoi que ce soit moins de 0. Attention à flotter les problèmes d'arrondi point si vous utilisez flotteur ou types de données smallfloat.
S'il y a NULLs, vous pouvez également envelopper la colonne où la clause dans un ISNULL (availables.price, 0,0) pour exclure ceux aussi bien.