MAX(Date)在MySQL中返回错误的列数据

时间:2018-02-03 16:06:58

标签: mysql

在我的查询中,我在MAX(日期)上获得了正确的回报,但它在BidModifier列上的回报不正确。是否需要添加一行以便我可以获得与我的MAX(日期)对应的正确数据?

这是我的问题:

 SELECT AdGRoupId, Criteria, MAX(DATE) LatestDate , CpcBid, CpcBidSource, 
 BidModifier
 FROM aw_placementbid
 WHERE DATE
 IN (
 SELECT DATE
 FROM aw_placementbid
 GROUP BY AdGroupId, Criteria
 )
 GROUP BY AdGroupId, Criteria
 ORDER BY BidModifier DESC 

enter image description here

1 个答案:

答案 0 :(得分:-1)

尝试此查询:

 SELECT AdGRoupId, Criteria, DATE, CpcBid, CpcBidSource, BidModifier
 FROM
 (
   SELECT AdGRoupId, Criteria, DATE, CpcBid, CpcBidSource, BidModifier
   FROM aw_placementbid 
   ORDER BY DATE DESC
 ) AS t
 GROUP BY AdGroupId, Criteria
 ORDER BY BidModifier DESC

首先,您选择所需的所有数据并按DATE排序,因此大DATE的记录将排在最前面。

然后,将上面的临时表分成几组(通过GROUP BY AdGroupId, Criteria)。

最后,您只需获取每个组的第一行(它必须是带有MAX(DATE)的行,因为您已经对所有记录进行了排序)。