PHP+MySQLから結果セット取得後の計算方法を教えてください。
イメージは以下になります。
以下、testtable とします。
生徒|国語|算数|理科|社会
A 60 80 90 60
B 80 60 70 65
C 95 30 50 90
D 100 95 85 90
そこで、国語が80点以下の生徒を検索し、抽出した生徒の算数平均点数を導きたいのです。
//国語が80点以下の生徒を抽出
$sql="SELECT * from testtable WHERE 国語<=80";
$rst= mysql_query($sql);
上記で国語が80点以下の生徒を検索出来たと思うのです。
イメージは下記になります。
生徒|国語|算数|理科|社会
A 60 80 90 60
B 80 60 70 65
算数の平均を求めるので、(80+60)/2の式を書きたいのです。
平均の2は、mysql_num_rows($rst)で導き出せるのですが、
(80+60)の部分がわかりません。
while ($col = mysql_fetch_array($rst)){
$sum=$sum+$col[算数];}
$body.= "平均".$sum/mysql_num_rows($rst)."点";
でよいでしょうか。
ご教授願います。
No.2ベストアンサー
- 回答日時:
SQLの集約関数、グループ化SELECTについて、勉強する事をお薦めします。
集計はasunsionの回答のように、SQLで簡単に実現できます。
合計にはSUM()を使えますが、この問題だけでなく、他の問題にも適用できるようにするには、基本を勉強した方が良いでしょう。
SELECT SUM(算数) AS 合計, AVG(算数) AS 平均
FROM testtable
WHERE 国語 <= 80;
ありがとうございました。
SQLの文法?の専門書を見つけました。
PHPの本しか見ていなかったので、こんなに奥が深いとは思いませんでした。逆引きの本など参考になりました。
これから追及していきたいと思います。
No.3
- 回答日時:
asuncionさん、すみません・・・
呼び捨てにしてしまいました。
前の投稿でも書きましたが、集計の多くは、SQLで書けますし、
多分、PHPで計算するより簡単で、速いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- 中学校 理科だけが極端に苦手 5 2022/09/10 14:18
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 第二回模試の3科目の各得点と合 1 2023/04/25 18:02
- 中学校 理科で点数をあげる方法。 4 2022/06/28 23:54
- 中学校 期末試験について 2 2022/06/06 10:26
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- 高校受験 英語科に行くのはアリかナシか 5 2022/11/01 23:41
- 高校受験 高校受験まで2週間/未だに理社が平均点以下 理社の点数が未だに平均点以下から上がらず困っています… 1 2023/01/29 18:24
- 中学校受験 中学受験 3 2022/11/13 21:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
#1062 - '0' は索引 'PRIMARY' ...
-
SQLです教えてくださいお願いし...
-
select *, `人口(男)`AND`人口(...
-
my_itemsテーブルのIDにAUTO_IN...
-
BGMを教えてほしいです!
-
SQL文のエラー
-
SQLです教えてくださいお願いし...
-
エラー 1068 (42000): 複数の主...
-
SQLです教えてくださいお願いし...
-
Xサーバーのバックアップで全サ...
-
SQL任意に並び替えをしたい
-
私の考えていることは ・mySQL ...
-
AWSのRDSを無料枠で使用してお...
-
「重複を間引いた数」をcountし...
-
LIMIT で条件を満たしているの...
-
utf8bomとutf8mb4の違いがいま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpからinsertできない
-
PHP+MySQLから結果セット取得後...
-
コメントが消えてしまいます
-
.sqlのファイルをそのままコマ...
-
ダブルコーテーションやシング...
-
検索後のソートについて
-
SQLiteについて
-
【php+mysql】mysqlのレコード...
-
MySQL記述でアドバイスを
-
レコード新規・編集時に自動で...
-
PHP+MySQLでデータ登録がうまく...
-
Perlでexecuteをまとめて実行し...
-
複数条件の検索について
-
PHPで特定のレコードを取り出す
-
PHP+MySQLによるINSERTについて
-
mySQLで複雑な演算
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
ODP.NETのバージョン確認
おすすめ情報