2 votes

BigQuery - les sorties arrondies ne sont parfois pas vraiment rondes

Je suis en train de courir round sur BigQuery mais le résultat n'est pas toujours aussi rond que prévu. En outre, ce ne sont pas toujours les mêmes valeurs qui sont "non arrondies".

Par exemple, la requête de l'ensemble de données publiques :

SELECT year,month,day, sum(round(weight_pounds,2))as total_pounds, count(*) as cnt
FROM [bigquery-public-data:samples.natality] 
group by 1,2,3
order by 1,2,3

Renvoie cette sortie :

enter image description here

Y a-t-il une raison pour laquelle les valeurs marquées en jaune ne sont pas "entièrement arrondies" ? (Si je réexécute la requête, d'autres valeurs peuvent apparaître avec .XX000001 ou .XX99999, mais les valeurs marquées seront comme prévu arrondies à la deuxième décimale.

Merci

2voto

Liana Yos Points 21

Je suppose que vous devez recevoir la somme totale arrondie à deux chiffres après le point. Mathématiquement, il est plus précis d'additionner tous les chiffres et de n'arrondir le résultat qu'ensuite. En ce qui concerne le fait qu'il n'est pas proche du nombre non arrondi, à quoi le comparez-vous ? Il faut le comparer à la somme (poids_livres).

Je comprends que vous devez exécuter la requête suivante :

SELECT 
  year,month,day, 
  round(sum(weight_pounds),2) as total_pounds, 
  sum (weight_pounds) as total_pounds1 ,
  count(*) as cnt
FROM [bigquery-public-data:samples.natality] 
group by 1,2,3
order by 1,2,3

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X