简体   繁体   English

如何在MySQL中选择具有相应ID的最大值

[英]how to select max value with corresponding id in mysql

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

this query returns all reviews grouped by insId but id is not corresponding to this. 此查询返回按insId分组的所有评论,但id不与此对应。

You need to use a self INNER JOIN to get the results you need. 您需要使用自已的INNER JOIN来获得所需的结果。

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

Try this: 尝试这个:

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

You can try this out: 您可以尝试以下方法:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM