如何在mysql中选择对应id的最大值

如何在mysql中选择对应id的最大值,mysql,Mysql,此查询返回按内部分组的所有评论,但id与此不对应。尝试以下操作: SELECT id , insId , MAX(avgRating) as avgRating FROM reviews WHERE status='1' GROUP BY insId 您需要使用自内部联接来获得所需的结果 SELECT id , insId , MAX(avgRating) as avgRating FROM reviews WHERE status='1' GR

此查询返回按内部分组的所有评论,但id与此不对应。

尝试以下操作:

SELECT 
    id
  , insId
  , MAX(avgRating) as avgRating 
FROM reviews 
WHERE status='1' 
GROUP BY insId

您需要使用自内部联接来获得所需的结果

SELECT 
    id
  , insId
  , MAX(avgRating) as avgRating 
FROM reviews 
WHERE status='1' 
GROUP BY id
您可以尝试以下方法:

SELECT
   reviews.id
 , reviews_max.insId
 , reviews_max.maxAvgRating
FROM (

  SELECT 
     insId
   , MAX(avgRating) AS maxAvgRating
  FROM
   reviews
  WHERE
   status = '1'
  GROUP BY
   insId
) AS reviews_max
INNER JOIN 
 reviews
ON
   reviews.insId = reviews_max.insId 
 AND
   reviews.avgRating = reviews_max.maxAvgRating

试试GROUP_CONCAT(id)@DavidPartyka
GROUP_CONCAT(id)
将给出内部组中的所有id,这很可能不会生成正确的输出。它会选择所有评论,但我只想要最大值,这样对我不起作用。这一个选择具有重复的内部如何在这里获得不同的内部?什么MySQL版本@库玛
SELECT id, 
insId, 
MAX(avgRating) as avgRating 
FROM reviews 
WHERE status='1' 
GROUP BY id, insId