漫ろで行こう

自由気まま過ぎる、ギークになりたい男の子の話

© 1995-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.

© 1995-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.

仕事の絡みで以前にもやっていた集計をしていて嵌ったのでメモ。いや、普通に考えればそうしたら良いのだけど、混乱したので覚書。

以前の成功例
以前やっていたのは以下の状態。

  • MySQL 5.0.45
  • 対象の型は「decimal」のhogeというカラム
  • decimal 型の小数点以下は切り捨て
  • 対象の型には「正」の数値のみ
  • 合計した値を10で割った数値を出力

上記条件を満たしたクエリは以下。

select sum(cast(hoge as unsigned)/10) from test;

前回はコレで問題なかったのですが、今回同様にしてみたところ。どうしても結果に浮動小数点が表示される……。

今回の失敗例

  • MySQL 5.0.45
  • 対象の型は「int」のhogeというカラム
  • 対象の型には「負」の数値のみ
  • 合計した値を10で割った数値を出力

で、結果クエリがこうなりました。

select truncate(sum((hoge*-1)/10),0) from test;

「/10」がどうも悪さをしているようで、「/10」が無ければ浮動小数点が表示されないけども、10で割りたい。割ったら浮動小数点が表示される。悩んだ挙句、trancate の存在を忘れていたことを思い出したので解決。
うーん、整数で割ってて浮動小数点が表示されるのは何故なんだろう?

Related Posts

  1. [MySQL]Connector/Net を利用した無効な日付の処理
  2. [MySQL]ネットマスクのAND演算処理
  3. [MySQL]Windows で mysql-proxy
  4. [言語][C#]Fatal error encountered during command execution
  5. [MySQL]MySQL 5.1.38 環境で InnoDB Plugin を試してみる
このエントリーをはてなブックマーク この記事をクリップ! このエントリーをdel.icio.usに追加

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
Proudly powered by WordPress. Theme developed with WordPress Theme Generator.
Copyright © 漫ろで行こう. All rights reserved.