![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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ランキング
-
phpからinsertできない
-
ダブルコーテーションやシング...
-
接続ができません
-
ERROR 1045 (28000) (using pas...
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
MySQLのテーブル作成でハイフン...
-
SQL Server のキャラクターセッ...
-
postgreSQLのデータ型
-
ODP.NETのバージョン確認
-
パスワード入力を省略したい
-
like句を使って日本語を検索す...
-
MySQLの型のサイズ指定で速度は...
-
Float型の時の計算結果がおかしい
-
mysqlがインストールされている...
-
MySQL Client API versionについて
-
c言語でMySQLを利用するときの...
-
mysqlへのインポート処理がうま...
-
RPMのmysqlとmysql-serverの違い
-
急に文字化けを起こすようにな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLiteについて
-
コメントが消えてしまいます
-
.sqlのファイルをそのままコマ...
-
phpからinsertできない
-
PEARでレコード数の取得
-
【php+mysql】mysqlのレコード...
-
PHP+MySQLから結果セット取得後...
-
トランザクションについて教え...
-
レコード新規・編集時に自動で...
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
MySQLカラム名は日本語と英数字...
-
ODP.NETのバージョン確認
-
旧filemakerで和暦(令和など)...
-
VBAで変数内に保持された二次配...
-
プライマリーキーの昇順でソー...
-
ERROR 1045 (28000) (using pas...
-
INT型は金額の型に使用するべき...
-
like句を使って日本語を検索す...
おすすめ情報