忙しい現代人の腰&肩のお悩み対策!

まだ初心者なんです。よろしくお願いいたします。
テーブル$tbl_nameに日付date コラムに (2009-11-3 14:25:06).(2009-11-3 11:25:06). (2009-11-5 12:25:06).(...
....と年齢 ageコラムに (18)(19)(20)...
性別コラムage に (danshi)(jyoshi) が入っています。

これを日付別 に内容が存在するだけ出力したいのです。
出力内容は(18)→25、(19)→13、(20)→7、の数だけ、
同様に(danshi)→20、(jyoshi)→25、というように
〇月〇日18才は25人、19才は13人、20才は7人、
男子は20人、女子は25人と出したいのです。

$sql = "SELECT 'age',count(age) FROM $tbl_name group by 'date'";
$result = mysql_query($sql, $db) or die("クエリの送信に失敗しました。<br />SQL:".$sql);
while ($row = mysql_fetch_assoc($result)){ $age .=$row;}

等記入しているのですが、何とも動きませんのです。
どうしたらよろしいものでしょう。よろしくお願いいたします。

A 回答 (2件)

create table hoge(date datetime,seibetu varchar(10),age int);


insert into hoge values(
'2009-12-2 10:35:06','danshi','18'),(
'2009-12-2 11:35:06','jyoshi','20'),(
'2009-12-2 11:35:06','danshi','19'),(
'2009-12-2 12:35:06','jyoshi','20'),(
'2009-12-2 12:35:06','danshi','17'),(
'2009-12-3 13:35:06','danshi','18'),(
'2009-12-3 11:35:06','jyoshi','20'),(
'2009-12-3 13:35:06','danshi','20'),(
'2009-12-3 16:35:06','danshi','19'),(
'2009-12-4 13:35:07','danshi','18'),(
'2009-12-4 13:35:06','jyoshi','20'),(
'2009-12-6 11:35:06','jyoshi','19');

だとして、

(1)日付別、年齢分布
select date(`date`) as d,age ,count(*)
from hoge
group by d,age;

(2)日付別、性別分布
select date(`date`) as d,seibetu ,count(*)
from hoge
group by d,seibetu;


ってことでしょうか?
    • good
    • 0
この回答へのお礼

こんにちは。yambejp様。
どうもありがとうございます。
返信が遅れまして申し訳ありませんでした。
まだまだ勉強が必要と自覚しており、このお正月ジックリ本を読んでyambejp様の
ご回答に自分で確信を持ちたいと思っています。
また分からない事がありましたらよろしくお願いいたします。

お礼日時:2010/12/26 14:50

まずコーテーションがおかしいです



>$sql = "SELECT 'age',count(age) FROM $tbl_name group by 'date'";

'age'→`age` 'date'→`date`

で、dateでgroup by して、グルーピングしたIDにdateを使わないのも不明。
またdateとageの関係が不明・・・

この回答への補足

こんにちは。不明な点を補足させていただきます。
. .....date............   seibetu. .age
2009-12-2 10:35:06...danshi...18
2009-12-2 11:35:06...jyoshi...20
2009-12-2 11:35:06...danshi...19
2009-12-2 12:35:06...jyoshi...20
2009-12-2 12:35:06...danshi...17
2009-12-3 13:35:06...danshi...18
2009-12-3 11:35:06...jyoshi...20
2009-12-3 13:35:06...danshi...20
2009-12-3 16:35:06...danshi...19
2009-12-4 13:35:07...danshi...18
2009-12-4 13:35:06...jyoshi...20
2009-12-6 11:35:06...jyoshi...19

以上の様に入っていまして、
日付ごとにseibetuとageのそれぞれの数を数えたいのです。
よろしくお願いいたします。

補足日時:2010/12/20 20:38
    • good
    • 0

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

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


人気Q&Aランキング