mysql:475
From: Tamon Nomura <Tamon Nomura <tamon@xxxxxxxxxx>>
Date: Sat, 26 Dec 1998 14:08:04 +0900
Subject: [mysql 475] Re: クロス集計の方法
tamonです。 クロス集計ってどんなものかと思ってました。(笑) > select > sum(decode(地区コード,1,売上金額,0)), > sum(decode(地区コード,2,売上金額,0)), > sum(decode(地区コード,1,0,2,0,売上金額)) > from 売上テーブル んー、ORACLEからはなれてたんで、sumってgroup関数か忘れたけど こうゆう使い方っていまいちなような、誤った使い方なような。 (個人的に思うだけで、他人のSQLを否定するわけじゃないですけど) やるとすれば、 select decode(地区コード,1,1,2,2,0) as 地区, sum(売上金額) >from 売上テーブル group by 地区 とかやるのが自然だと思うんですが。 > 但しこれの難点は、その他の集計を書く時に、 > その他以外の項目を全て列挙して0を戻すように書かなければいけない事です。 上のであれば、この問題はないです。 > 尚、「プログラマのためのSQL」という本に、クロス集計の作り方が > 書いてあります。 > もし宜しければ読んでみてください。 この本にそうゆうSQLで書けと書いてあるなら、私はその本、信用しません。(笑) mysqlでやる場合、decodeがないんで select if(地区コード = 1,1,if(地区コード= 2,2,0)) as 地区, sum(売上金額) >from 売上テーブル group by 地区 って感じでしょうか?
470 1998-12-25 18:08 [Satoshi Koiwa <koiwa] Re: クロス集計の方法 471 1998-12-25 18:31 ┗[<endo@xxxxxxxxxx> ] -> 475 1998-12-26 14:08 ┗[Tamon Nomura <tamon@] 476 1998-12-26 17:35 ┗[<endo@xxxxxxxxxx> ]