Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 向表中添加一列值_Mysql_Mysql Workbench - Fatal编程技术网

Mysql 向表中添加一列值

Mysql 向表中添加一列值,mysql,mysql-workbench,Mysql,Mysql Workbench,我有一个游戏中球员的数据集,包括他们的属性、球队、联盟以及他们来自的国家。我想做一个表格,列出每个不同的球队,显示他们的整体评分,他们的n名最佳球员,以及这些球员的平均水平 我可以通过以下方式获得这些值: select distinct Team, nth_value(Current, 2) #get nth largest value from column over (partition by Team) as player2 #best nth player

我有一个游戏中球员的数据集,包括他们的属性、球队、联盟以及他们来自的国家。我想做一个表格,列出每个不同的球队,显示他们的整体评分,他们的n名最佳球员,以及这些球员的平均水平

我可以通过以下方式获得这些值:

    select distinct Team, nth_value(Current, 2) #get nth largest value 
          from column over (partition by Team) as player2 #best nth player by team
          from master
          order by Current DESC; #ordered by best player
这是:

    select Team, round(avg(Current),2) as 'Average' #average player on team
          from master
          group by Team;
我为球队和他们的平均水平做了一个表格,但我找不到一种方法来添加第n名最佳球员的列。我发现的最接近的方法是向表中添加一行信息

从本质上讲,该表应该类似于:

Team | Average_Rating | Best_Player | Second_Best | ... | Nth_Best | Avg_20
Name | 93.67          | 142         | 120         | ... | 72       | 96.25

n\u值(当前,2)
中的第二个值可以在请求之间更改,因为我假设
team
列在team列中的相等值上没有主键或唯一键含义,您无法预测在那里处理的记录。。我们需要
显示创建表格主控
的输出。。。另外
selectteam,round(avg(Current),2)
不是有效的查询,将非聚合列与聚合函数混合使用没有意义
avg()。。。我建议您查看以提供示例数据和预期结果,因为这些SQL代码包含非逻辑错误。我不知道它是否适用于您的情况,但如果您可以在查询后进行一些后处理,您可以尝试类似于
SELECT Team,GROUP_CONCAT(当前顺序按当前描述)由于每个团队都有来自主组的分数
,然后将分数拆分(例如,在PHP中使用
explode()
)@Pepper您的建议也会遇到团队列中相等值的问题。您无法预测哪些记录值位于逗号分隔值内的ntn位置。@RaymondNijland来自主组的示例: