sql - 我从面试中解决这个 SQL 问题的方法正确吗?
问题描述
我是 SQL 新手(刚刚完成了关于 Edx 的课程),并且在我知道任何事情之前就提出了这个面试问题,并认为我现在应该试一试。想知道我的解决方案是否正确。谢谢!
问题
给定以下两个数据库表,team 和 player(在下面的第 8-12 行中提供了相应的数据库列),编写一个 SQL 语句,该语句将返回从平均球员最高到最短排序的前 10 支球队的名称列表。假设玩家身高存储为表示英寸数的整数。
团队
id
league
name
division
播放器
id
name
height
weight
team_id
解决方案
SELECT TOP 10 T.Team, P.Name
FROM Team AS T
JOIN Player AS P on T.id = P.team_id
ORDER BY height DESC;
解决方案
问题陈述要求您选择团队的名称,而不是选择高度。GROUP BY
您需要按照球员的平均身高对球队名称进行排序,并且您可以通过与AVG()
函数一起使用来执行此操作,而无需选择平均身高作为最终结果集的一部分。
SELECT TOP 10 T.name FROM team T
INNER JOIN player P
ON T.id = P.team_id
GROUP BY T.id
ORDER BY AVG(P.height) DESC
推荐阅读
- php - 如何在php中将两个文本框值保存到一个表中
- c# - 我想向包含文本和图像的网格视图添加标签
- c# - 在ListView中更新对象属性后如何获取列表对象
- python - cmd提示中shutil和pathlib的名称错误
- python-3.x - tf.contrib.metrics.f1_score 无法导入
- django - Django Formset:多选查询集过滤器在多次尝试后不适用于我的表单集
- spring-boot - 当从控制器返回字符串“home”时,Thymleaf 选择 mainLayout.html 而不是 home.html
- php - php echo 爆炸数组
- c++ - 递归命名空间成员函数定义
- mysql - mysql中字母数字字符串(java uuid)的比较(>,<)