Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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
Sql server MSSQL按Actor表的所有列分组_Sql Server_Group By - Fatal编程技术网

Sql server MSSQL按Actor表的所有列分组

Sql server MSSQL按Actor表的所有列分组,sql-server,group-by,Sql Server,Group By,我需要根据演员的所有细节进行分组。意味着我需要所有的栏目 到目前为止,我所做的是: SELECT Actor.Actor_id AS A,(MAX(Movie.M_year))-(MIN(Movie.M_year))AS DIFF FROM Actor INNER JOIN (Movie INNER JOIN Acted_in ON (Acted_in.Movie_id=Movie.Movie_id)) ON (Actor.Actor_id=Acted_in.Actor_id) GROUP BY

我需要根据演员的所有细节进行分组。意味着我需要所有的栏目 到目前为止,我所做的是:

SELECT Actor.Actor_id AS A,(MAX(Movie.M_year))-(MIN(Movie.M_year))AS DIFF
FROM Actor INNER JOIN (Movie INNER JOIN Acted_in ON (Acted_in.Movie_id=Movie.Movie_id))
ON (Actor.Actor_id=Acted_in.Actor_id)
GROUP BY Actor.Actor_id

如何修复此问题并选择所有列?我只能对id列执行此操作。

您的语法错误。试试这个:

SELECT Actor.Actor_id AS A,(MAX(Movie.M_year))-(MIN(Movie.M_year))AS DIFF
FROM Actor INNER JOIN Acted_in ON Actor.Actor_id=Acted_in.Actor_id
INNER JOIN Movie ON Acted_in.Movie_id=Movie.Movie_id
GROUP BY Actor.Actor_id
如果需要更多列,则可以添加为:

SELECT Actor.Actor_id AS A,(MAX(Movie.M_year))-(MIN(Movie.M_year))AS DIFF, 
       Actor.someCol1, Actor.someCol2
FROM Actor INNER JOIN Acted_in ON Actor.Actor_id=Acted_in.Actor_id
INNER JOIN Movie ON Acted_in.Movie_id=Movie.Movie_id
GROUP BY Actor.Actor_id, Actor.someCol1, Actor.someCol2

对不起,我的错误……不是学生——如果你喜欢,考虑下面这个简单的两步过程:1。如果您还没有这样做,请提供适当的CREATE和INSERT语句(和/或SQLFIDLE),以便我们可以更轻松地复制问题。2.如果您还没有这样做,提供与步骤1中提供的信息相对应的所需结果集。实际上,我需要具有最大差异的所有详细信息的参与者,但我无法在最大值上输入最大值。我如何才能做到这一点?@DANA Use
ORDER BY diff DESC LIMIT 1
以获得具有最大差异的参与者。限制1是顶部?它不起作用。只有描述是working@DANA我以为你在用MySQL,这是另一个区别。在SQL Server中,您可以使用
选择TOP 1…