2011-05-05 73 views
1

嘿,我不是最大的专家与MySQL,但这里是我迄今为止获得的最大entery使用MySQL来选择最后5个条目的SUM的最大值?

SELECT DISTINCT 
      websites.id, 
      websites.title, 
      websites.url, 
      websites.screenshot, 
      impressions.number, 
      blocks.price 
    FROM websites 
LEFT JOIN blocks ON websites.id = blocks.website 
LEFT JOIN impressions ON blocks.id = impressions.block 
    WHERE status = 1 
     AND blocks.active = '1' 
     AND impressions.number = (SELECT MAX(number) 
            FROM impressions) 

我想要做的是选择最大(数目)的总和,但最后5个条目。我尝试过乱搞,但无法得到它。

+1

最后五个基于什么? – 2011-05-05 23:56:30

+0

@OMG小马,我猜最后五个印象。 – 2011-05-06 00:20:02

回答

1

要获取最后五条记录,它取决于您正在排序的列。让我们假设这是一个日期列,所以后来的例子是:

SELECT MAX(n) FROM tbl ORDER BY datecol DESC limit 5; 
2

最后五个impressions.number这应该做到这一点不知道你要总结上虽然什么

SELECT DISTINCT websites.id, 
       websites.title, 
       websites.url, 
       websites.screenshot, 
       impressions.number, 
       blocks.price 
FROM websites 
     LEFT JOIN blocks 
     ON websites.id = blocks.website 
     LEFT JOIN impressions 
     ON blocks.id = impressions.block 
WHERE status = 1 
     AND blocks.active = '1' 
ORDER BY impressions.number 
LIMIT 5 

如果你想要块的总和,你可以做

SELECT SUM(lastblocks.price) 
    FROM (
    SELECT 
      price 
    FROM websites 
      LEFT JOIN blocks 
      ON websites.id = blocks.website 
      LEFT JOIN impressions 
      ON blocks.id = impressions.block 
    WHERE status = 1 
      AND blocks.active = '1' 
    ORDER BY impressions.number 
    LIMIT 5) lastblocks