[前][次][番号順一覧][スレッド一覧]

mysql:2521

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Sat, 30 Sep 2000 00:58:58 +0900
Subject: [mysql 02521] Re: 同じ行をカウント1としたい

とみたです。

On Fri, 29 Sep 2000 17:53:42 +0900
endo@xxxxxxxxxx (遠藤 俊裕) wrote:

> データに以下のような物があるとします。
> 
> userID, ProcNo, Date
> 1, 1, 2000/09/29
> 1, 1, 2000/09/30
> 1, 1, 2000/09/30
> 1, 2, 2000/09/30
> 
> この時
> ProcCount を 5 として、DateCount を 4 としたい
> (2 でも 3 でもない!)のですが、どう記述すれば
> よろしいのでしょうか?

ProcCount はどのように計算するんでしょう? 単純に ProcNo の
値の合計でしょうか?

> DateCount は「その日のうち、同じ ProcNo が存在し
> たらそれは一日とカウントする」というのが条件です。
> だから、2000/09/30 は ProcNo = 1 が2回あるので、
> そこはカウント1。他は3つあるので合計4です。
> お教え下さい。m(_ _)m

ええと、要するに ProcNo, Date がダブってるのは取り除いて、ProcNo の値
を合計するってことでいいんでしょうか?

> あ、一本の SQL で書きたいのです。
> よろしくお願いいたします。m(_ _)m

んん〜、ひとつのクエリではむずかしいですねえ。Sub-Select が
使えればできるような気はしますが…。

クエリが複数個になっても良ければ、一時テーブルを使って、

	create temporary table hoge (ProcNo int, Date date);
	insert into hoge select distinct ProcNo, Date from OriginalTable;
	select sum(ProcNo) DateCount from hoge;

とかでできそうです。

---
とみたまさひろ <tommy@xxxxxxxxxx> http://www.tmtm.org
日本MySQLユーザ会 http://www.mysql.gr.jp

[前][次][番号順一覧][スレッド一覧]

      2519 2000-09-29 17:53 [<endo@xxxxxxxxxx>   ] 同じ行をカウント1としたい              
->    2521 2000-09-30 00:58 ┗[とみたまさひろ <tomm]                                       
      2522 2000-09-30 09:56  ┗[<endo@xxxxxxxxxx>   ]