Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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 获取列和id的最大值_Sql_Linq - Fatal编程技术网

Sql 获取列和id的最大值

Sql 获取列和id的最大值,sql,linq,Sql,Linq,我在一个表中有以下列 电影ID-点-类别ID 1-5-1 1-6-2 1-4-3 2-7-1 正如你所看到的,每部电影都有不止一个类别。我想找到得分最高的电影。但这一点必须是所有类别的平均值。下面的linq查询找到了我想要的最大值,但我也需要电影ID from tmp in (from tmp in ( (from Rating in db.Rating where Rating.DistrictID == 1 group Rating by new {

我在一个表中有以下列

电影ID-点-类别ID

1-5-1

1-6-2

1-4-3

2-7-1

正如你所看到的,每部电影都有不止一个类别。我想找到得分最高的电影。但这一点必须是所有类别的平均值。下面的linq查询找到了我想要的最大值,但我也需要电影ID

from tmp in
(from tmp in (
    (from Rating in db.Rating
    where
      Rating.DistrictID == 1
    group Rating by new {
      Rating.MovieID
    } into g
    select new {
      g.Key.MovieID,
      avg_point = (double?)g.Average(p => p.Point)
    }))
select new {
  tmp.avg_point,
  Dummy = "x"
})
group tmp by new { tmp.Dummy } into g
select new {
  max_point = (double?)g.Max(p => p.avg_point)
}
-------------------------------答复 感谢@Sari Rahal。我提出以下linq查询:

(from tmp in (
    (from Rating in db.Rating
    where
      Rating.DistrictID == 1
    group Rating by new {
      Rating.MovieID
    } into g
    select new {
      g.Key.MovieID,
      avg_point = (double?)g.Average(p => p.Point)
    }))
orderby
  tmp.avg_point descending
select new {
  tmp.MovieID,
  tmp.avg_point
}).Take(1)

您的内部查询应该足够了,只需在平均值之后调用
Max()

from Rating in db.Rating
where
  Rating.DistrictID == 1
group Rating by new {
  Rating.MovieID
} into g
select new {
  g.Key.MovieID,
  avg_point = (double?)g.Average(p => p.Point).Max()
}

您只需按顺序和限制即可完成此操作。您按电影ID订购,并且限制为1将为您提供电影的信息和最多分数。别忘了根据您的喜好和缩放方式将其更改为升序或降序

Select MovieID, Point Ordery By MovieID Limit 1