在我的查询中,我在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
答案 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)
的行,因为您已经对所有记录进行了排序)。