質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

1回答

241閲覧

division by zero: 0 / 0 のエラー

tatatata2024

総合スコア0

BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2024/04/29 12:37

実現したいこと

BigQueryでAの値を100万倍に掛け算してBの値で割りたいです。
A*1000000/B の返り値を算出したいです。

発生している問題・分からないこと

division by zero: 0 / 0 のエラーが出ます

エラーメッセージ

error

1division by zero: 0 / 0

該当のソースコード

BigQuery

1select 2 Date, 3 Sex, 4 sum(A) A, 5 sum(B) B, 6 sum(A*1000000/B) C, 7from table

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

safe_divide(A*1000000/B) C
にしたがダメだった。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

safe_divideを利用するのであれば、以下のようになるかと思います

safe_divide(A*1000000, B)

投稿2024/04/29 14:03

neko_the_shadow

総合スコア2324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tatatata2024

2024/04/30 00:39

ありがとうございます。safe_divide(A*1000000, B)  とすると、 SELECT list expression references column A which is neither grouped nor aggregated at と出ます。何が問題なのでしょうか?
neko_the_shadow

2024/04/30 01:13

GROUP BYを利用していないのにSUMのような集約関数を利用しているため、発生しているエラーのように見えます。SUM関数を利用しない、あるいは、GROUP BYを追加するなどの対応が必要になります。
tatatata2024

2024/04/30 05:59

すみません、SUM関数を利用しない、GROUP BYを追加するなどの対応はどのようにできますか?初心者でせっかくのコメントがわからなくて申し訳ございません。
neko_the_shadow

2024/04/30 06:44

> SUM関数を利用しない 提示していただいたSQLであればそのままSum関数の利用をやめるとよいです。たとえば以下のようなSQLになります。 select Date, Sex, A, B, A*1000000/B from table
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問