ホームページ  >  記事  >  データベース  >  mysqlクエリの最大値ステートメントとは何ですか?

mysqlクエリの最大値ステートメントとは何ですか?

coldplay.xixi
coldplay.xixiオリジナル
2020-09-03 13:33:586155ブラウズ

mysql の最大値クエリ ステートメントは次のとおりです: まず stuname フィールドをグループ化し、次に MAX 関数を使用して各グループの最大値を計算します。コードは [SELECT a.stuname,MAX(a. core) AS] です。 ..]。

mysqlクエリの最大値ステートメントとは何ですか?

【関連する学習の推奨事項: mysql チュートリアル(ビデオ)】

Mysql 最大値クエリ ステートメントは次のとおりです:

1、メソッド 1

SELECT a.stuname,MAX(a.score) AS score FROM stuscore a  GROUP BY a.`stuname` ;

このステートメントでは、stname に対してクエリを実行します。フィールド値をグループにグループ化し、MAX() 関数を使用して各グループの最大値を計算します。

2. 方法 2: 接続を使用する

SELECT a.stuname,a.score AS score FROM stuscore a JOIN 
stuscore b ON a.`stuname`=b.`stuname` 
 GROUP BY a.`score` HAVING a.`score`=MAX(b.`score`);

2 番目の SQL ステートメントでは、stuname を判定条件として 2 つのテーブルを接続します。

SELECT a.stuname,a.score AS score FROM stuscore a JOIN

stuscore b ON a.stuname=b.stuname のみを実行すると、次の結果セットが得られます:

mysqlクエリの最大値ステートメントとは何ですか?

したがって、接続中に、接続条件 ON a.stuname=b.stuname" に従って、左側のテーブルの各レコードが右側のテーブルの各レコードと照合されるため、この結果セットが得られます。これが、重複レコードが表示される理由です。これは、プログラミング言語の「二重ループ」に少し似ています。

次に、グループ化とグループ化条件を追加しますGROUP BY a.score HAVING a.score=MAX (b .score)、各生徒の最大スコアを取得できます;

mysqlクエリの最大値ステートメントとは何ですか?

実際には、GROUP BY a.`score ` HAVING a.` スコア`=MAX(b.`score`)最初はこのグループ化条件、つまりスコア フィールドに従ってグループ化したのがよくわかりませんでしたが、なぜここで MAX() 関数がそれぞれの値を計算できるのでしょうか。学生間の最大スコア。最初の方法の方が理解しやすいことはわかっています。これは、各学生の名前をグループ化し、MAX() 関数を使用して最大値を計算することです。これは確かです。 , ただし、2 番目の方法は、スコア フィールドをグループ化することです。ここでの理由は、2 つのテーブルを接続するときに、接続条件 a.stuname=b.stuname がすでに生徒名に基づいているためだと思います。グループ分けが行われているので、MAX(b.score) で各生徒の最大スコアを計算できます。

プログラミング学習について詳しく知りたい方は、ぜひご覧くださいphptrainingコラム!

以上がmysqlクエリの最大値ステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。