電子書籍の厳選無料作品が豊富!

いつも大変お世話になっております。
MySQLでレコードの特定のカラムの縦の合計を出す方法は無いのでしょうか?
例えば下記のようなテーブルがあるとします。

hoge_total
|id|total1|total2|
|2|100|600|
|3|200|700|
|4|300|800|
|5|400|900|
|6|500|1000|

各レコードに対して横の合計を出すなら

select *,total1 + total2 as total from hoge_total
hoge_total
|id|total1|total2|total|
|2|100|600|700|
|3|200|700|900|
|4|300|800|1100|
|5|400|900|1300|
|6|500|1000|1500|

といった感じで簡単に出せますが、total1、total2を縦に計算した合計が出せないのでしょうか?
結果としては

hoge_total
|id|total1|total2|total|
|2|100|600|2100|
|3|200|700|2100|
|4|300|800|2100|
|5|400|900|2100|
|6|500|1000|2100|
※total1を縦に合計した値をtotalとして取り出す

こんな感じにしたいんですが、MySQLでは出来ないのでしょうか?
何卒、ご教授の程、宜しくお願い致します。

A 回答 (2件)

4.1ならサブクエリーがつかえますね



SELECT id, total1, total2, total
FROM hoge_total, (
SELECT SUM( total1 ) AS total
FROM hoge_total
) AS hoge_total2

よくみればわかりますが、すごく意味がないことをしています。
このようなSQLは絶対にやらないことをお勧めします。
できることとやっていいことは違います。

(ちなみにtotal1の合計は2100ではなく1500ですね?)
    • good
    • 0
この回答へのお礼

ありがとうございます!
おっしゃるとおり、意味がないだけではなく、サーバに無意味な負荷をかけるだけにしか見えません。
このままでは使用しませんので、大丈夫です。
助かりました!

お礼日時:2008/06/17 00:39

(1)基本的にやる意味がありません・・・


毎行おなじトータルがでてくるのはオーバーヘッドが大きく意味不明。

(2)どうしてもやりたいならできます。
MySQLのバージョンによってやりかたが違います。
バージョンを書いた方がよいでしょう

この回答への補足

すみません。バージョンを明記しておりませんでした。
MySQLのバージョンは4.1.15です。
お教え頂けると大変助かります。何卒、宜しくお願い致します。

補足日時:2008/06/16 21:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す