尋求最高平均分數學生的學號,如何寫SQL查詢來關聯成績和學生表格?
P粉786432579
P粉786432579 2023-08-15 15:11:01
0
1
509
<p>这是我的学生表 stud 表</p> <table class="s-table"> <thead> <tr> <th style="text-align:center;">rollno</th> <th style="text-align:center;">name</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;">1</td> <td style="text-align:center;">A</td> </tr> <tr> <td style="text-align:center;">2</td> <td style="text-align:center;">B</td> </tr> <tr> <td style="text-align:center;">3</td> <td style="text-align:center;">C</td> </tr> <tr> <td style="text-align:center;">4</td> <td style="text-align:center;">B</td> </tr> <tr> <td style="text-align:center;">5</td> <td style="text-align:center;">D</td> </tr> <tr> <td style="text-align:center;">6</td> <td style="text-align:center;">C</td> </tr> </tbody> </table> <p>这是我的成绩表 marks 表</p> <table class="s-table"> <thead> <tr> <th style="text-align:center;">rollno</th> <th style="text-align:center;">mar</th> <th style="text-align:center;">eng</th> <th style="text-align:center;">maths</th> <th style="text-align:center;">phy</th> <th style="text-align:center;">chem</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;">1</td> <td style="text-align:center;">40</td> <td style="text-align:center;">45</td> <td style="text-align:center;">38</td> <td style="text-align:center;">50</td> <td style="text-align:center;">50</td> </tr> <tr> <td style="text-align:center;">2</td> <td style="text-align:center;">28</td> <td style="text-align:center;">50</td> <td style="text-align:center;">45</td> <td style="text-align:center;">41</td> <td style="text-align:center;">38</td> </tr> <tr> <td style="text-align:center;">3</td> <td style="text-align:center;">41</td> <td style="text-align:center;">42</td> <td style="text-align:center;">43</td> <td style="text-align:center;">44</td> <td style="text-align:center;">45</td> </tr> <tr> <td style="text-align:center;">4</td> <td style="text-align:center;">45</td> <td style="text-align:center;">44</td> <td style="text-align:center;">43</td> <td style="text-align:center;">42</td> <td style="text-align:center;">41</td> </tr> <tr> <td style="text-align:center;">5</td> <td style="text-align:center;">33</td> <td style="text-align:center;">32</td> <td style="text-align:center;">42</td> <td style="text-align:center;">15</td> <td style="text-align:center;">41</td> </tr> </tbody> </table> <p>对于以下查询:</p> <pre class="brush:php;toolbar:false;">select rollno,(mar+eng+maths+phy+chem)/5 as average from marks;</pre> <p>我得到的结果是:op</p> <table class="s-table"> <thead> <tr> <th style="text-align:center;">rollno</th> <th style="text-align:center;">average</th> </tr> </thead> <tbody> <tr> <td style="text-align:center;">1</td> <td style="text-align:center;">44.6000</td> </tr> <tr> <td style="text-align:center;">2</td> <td style="text-align:center;">40.4000</td> </tr> <tr> <td style="text-align:center;">3</td> <td style="text-align:center;">43.0000</td> </tr> <tr> <td style="text-align:center;">4</td> <td style="text-align:center;">43.0000</td> </tr> <tr> <td style="text-align:center;">5</td> <td style="text-align:center;">32.6000</td> </tr> </tbody> </table> <p>现在要找到平均分最高的学生的学号,我应该写什么查询?</p> <p>我尝试使用</p> <pre class="brush:php;toolbar:false;">select rollno,max( select (mar+eng+maths+phy+chem)/5 from marks ) from marks;</pre> <p>但是给我返回了语法错误</p>
P粉786432579
P粉786432579

全部回覆(1)
P粉066224086

這個語法是錯誤的,因為子查詢傳回多行。在max函數中只能使用一個值。

這是一個更好的方法 -

SELECT rollno FROM marks WHERE (mar+eng+maths+phy+chem)/5 = (SELECT MAX((mar+eng+maths+phy+chem)/5) FROM marks);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!