mysql の最大値クエリ ステートメントは次のとおりです: まず stuname フィールドをグループ化し、次に MAX 関数を使用して各グループの最大値を計算します。コードは [SELECT a.stuname,MAX(a. core) AS] です。 ..]。
【関連する学習の推奨事項: 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
のみを実行すると、次の結果セットが得られます:
したがって、接続中に、接続条件 ON a.stuname=b.stuname
" に従って、左側のテーブルの各レコードが右側のテーブルの各レコードと照合されるため、この結果セットが得られます。これが、重複レコードが表示される理由です。これは、プログラミング言語の「二重ループ」に少し似ています。
次に、グループ化とグループ化条件を追加しますGROUP BY a.score HAVING a.score=MAX (b .score)
、各生徒の最大スコアを取得できます;
実際には、GROUP BY a.`score ` HAVING a.` スコア`=MAX(b.`score`)
最初はこのグループ化条件、つまりスコア フィールドに従ってグループ化したのがよくわかりませんでしたが、なぜここで MAX() 関数がそれぞれの値を計算できるのでしょうか。学生間の最大スコア。最初の方法の方が理解しやすいことはわかっています。これは、各学生の名前をグループ化し、MAX()
関数を使用して最大値を計算することです。これは確かです。 , ただし、2 番目の方法は、スコア フィールドをグループ化することです。ここでの理由は、2 つのテーブルを接続するときに、接続条件 a.stuname=b.stuname
がすでに生徒名に基づいているためだと思います。グループ分けが行われているので、MAX(b.score)
で各生徒の最大スコアを計算できます。
プログラミング学習について詳しく知りたい方は、ぜひご覧くださいphptrainingコラム!
以上がmysqlクエリの最大値ステートメントとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。