Heim  >  Artikel  >  Datenbank  >  Was ist die Maximalwertanweisung in einer MySQL-Abfrage?

Was ist die Maximalwertanweisung in einer MySQL-Abfrage?

coldplay.xixi
coldplay.xixiOriginal
2020-09-03 13:33:586206Durchsuche

Die MySQL-Maximalwert-Abfrageanweisung lautet: Gruppieren Sie zuerst das Stuname-Feld und berechnen Sie dann den Maximalwert in jeder Gruppe.

Was ist die Maximalwertanweisung in einer MySQL-Abfrage?

【Verwandte Lernempfehlung: MySQL-Tutorial(Video)】

MySQL-Abfrage-Maximalwertanweisung ist:

1, Methode. 1

rrree

In dieser Erklärung in, Wir gruppieren das Stuname-Feld und verwenden dann die Funktion MAX(), um den Maximalwert in jeder Gruppe zu berechnen.

2. Methode 2: Verbindung verwenden

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

In der zweiten SQL-Anweisung verwenden wir stuname als Beurteilungsbedingung, um die beiden Tabellen zu verbinden. Wenn wir nur

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`);

stuscore b ON a.stuname=b.stuname ausführen, erhalten wir die folgende Ergebnismenge: stuscore b ON a.stuname=b.stuname我们会得到下面的结果集:

Was ist die Maximalwertanweisung in einer MySQL-Abfrage?

之所以会得到这个结果集,是因为在连接时,左表中的每条记录都会根据连接条件ON a.stuname=b.stuname“和右表中的每条记录进行匹配,这就是为什么会出现重复记录的原因。这个有点像编程语言中的“双重循环”。

然后再加分组和分组条件GROUP BY a.score HAVING a.score=MAX(b.score),就可以得到每个学生中的最大分数;

Was ist die Maximalwertanweisung in einer MySQL-Abfrage?

其实GROUP BY a.`score ` HAVING a.`score`=MAX(b.`score`)这个分组条件一开始我也是有点不大理解,就是说我是根据score字段进行分组的,但这里的MAX()函数为什么就可以计算出每个学生中的最大分数,我们知道第一种方法比较好理解就是对每个学生的姓名分组,然后用MAX()函数计算出其中的最大值,这是肯定的,但第二方法是对score字段进行分组的。在这里我觉得原因应该是,在将两个表进行连接时,连接条件a.stuname=b.stuname已经对这些记录根据学生姓名进行分组了,所以MAX(b.score)

Was ist die Maximalwertanweisung in einer MySQL-Abfrage?

Der Grund, warum Sie diese Ergebnismenge erhalten, liegt darin, dass beim Verbinden jeder Eintrag in der linken Tabelle angezeigt wird Die Datensätze werden mit jedem Datensatz in der rechten Tabelle gemäß der Verbindungsbedingung „ON a.stuname=b.stuname“ abgeglichen, weshalb doppelte Datensätze angezeigt werden. Dies ist ein bisschen wie „“ in a Programmiersprache Doppelschleife". Dann fügen Sie Gruppierungs- und Gruppierungsbedingungen hinzu GROUP BY a.score HAVING a.score=MAX(b.score), Sie können die maximale Punktzahl jedes Schülers erhalten;

Was ist die Maximalwertanweisung in einer MySQL-Abfrage?
Eigentlich GROUP BY a.`score ` HAVING a.`score`=MAX(b.`score`)Ich habe diese Gruppierungsbedingung zunächst nicht ganz verstanden, das heißt, ich habe nach der Punktzahl gruppiert Aber warum kann die Funktion MAX() hier die maximale Punktzahl für jeden Schüler berechnen? Wir wissen, dass die erste Methode einfacher zu verstehen ist, nämlich die Gruppierung der Namen jedes Schülers und die Verwendung von MAX()? Die Funktion berechnet den Maximalwert, was sicher ist, aber die zweite Methode besteht darin, das Punktefeld zu gruppieren. Ich denke, der Grund sollte darin liegen, dass beim Verbinden der beiden Tabellen die Verbindungsbedingung a =b.stuname hat diese Datensätze nach Schülernamen gruppiert, sodass MAX(b.score) die maximale Punktzahl für jeden Schüler berechnen kann 🎜🎜🎜 Um mehr über das Programmieren zu erfahren Achten Sie auf die Spalte „PHP-Training“ 🎜🎜🎜

Das obige ist der detaillierte Inhalt vonWas ist die Maximalwertanweisung in einer MySQL-Abfrage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

In Verbindung stehende Artikel

Mehr sehen