Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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中每个用户的最高值_Sql_Sql Server - Fatal编程技术网

始终获取SQL Server中每个用户的最高值

始终获取SQL Server中每个用户的最高值,sql,sql-server,Sql,Sql Server,我正在为学校做一些作业,但我被困在这件事上了。我们需要获得每个用户使用最多的语言。右栏Gebruikt表示已使用。这是一项荷兰语作业,所以我需要用荷兰语完成。一切都是可行的,但我只需要欧文的一个结果,但我尝试的是我无法让它发挥作用 代码VV SELECT [Profile].ProfileName, Language.Name as 'Language', COUNT(*) as 'Gebruikt' FROM (((Profile INNER JOIN WatchedMedia ON [Wat

我正在为学校做一些作业,但我被困在这件事上了。我们需要获得每个用户使用最多的语言。右栏Gebruikt表示已使用。这是一项荷兰语作业,所以我需要用荷兰语完成。一切都是可行的,但我只需要欧文的一个结果,但我尝试的是我无法让它发挥作用

代码VV

SELECT [Profile].ProfileName, Language.Name as 'Language', COUNT(*) as 'Gebruikt'
FROM (((Profile
INNER JOIN WatchedMedia ON [WatchedMedia].ProfileID = Profile.ProfileID)
INNER JOIN Subtitles ON [WatchedMedia].SubtitleID = Subtitles.SubtitleID)
INNER JOIN Language ON Language.LanguageID = Subtitles.LanguageID )
WHERE  Language.Name <> Profile.Language
GROUP BY Profile.ProfileName, WatchedMedia.ProfileID, Language.Name
ORDER BY  COUNT(*) DESC
GO
代码VV的VV结果

您可以使用“行数”窗口功能:

SELECT t.ProfileName, t.Language, t.Gebruikt
FROM (
  SELECT 
    [Profile].ProfileName, Language.Name as Language, COUNT(*) as Gebruikt,
    ROW_NUMBER() OVER (PARTITION BY [Profile].ProfileName ORDER BY COUNT(*) DESC) rn    
  FROM Profile
  INNER JOIN WatchedMedia ON [WatchedMedia].ProfileID = Profile.ProfileID
  INNER JOIN Subtitles ON [WatchedMedia].SubtitleID = Subtitles.SubtitleID
  INNER JOIN Language ON Language.LanguageID = Subtitles.LanguageID 
  WHERE  Language.Name <> Profile.Language
  GROUP BY Profile.ProfileName, WatchedMedia.ProfileID, Language.Name
) t
WHERE t.rn = 1