中野智文

中野智文(VOYAGE GROUP)のコンピュータなどのメモ

有効数字n桁の計算式(BigQueryなどで)

2015-01-27 11:25:42 | BigQuery

背景

SQLで、有効数字n桁にまとめたいことがある。printfに相当する関数があればよいが、それがないとき。

数行数字n桁にする計算式

xが丸めたい数値、nが丸めたい桁数の時に、BigQueryでは、
 round(x,integer(-log10(x)-1+n))
単にlog10で桁数を求めただけ。微妙に100とか1000のように丁度になったときはintegerによる切り捨てがうまくいかない気がするが、 結局丸めたら、100や1000になるんじゃないの?と思う。

BigQueryの例

table_aのxでまとめたい。
select
 x,
 sum(x) as sum
from
 table_a
group by 
 x
xの種類の数の列が出来てしまう。 そこで、2桁にまとめる。
select
 round(x,integer(-log10(x)-1+2)) as xx,
 sum(x) as sum
from
 table_a
group by 
 xx
めでたしめでたし。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。