Используя MySQL, чтобы ВЫБЕРИТЕ МАКС. СУММЫ последних 5 записей? - PullRequest
1 голос
/ 06 мая 2011

Эй, я не самый большой эксперт по MySQL, но вот что у меня есть, чтобы получить MAX entery

   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 записей. Я пытался бездельничать, но просто не могу понять.

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Последние пять показов. Число, которое это должно сделать, не знает, на что вы хотите подвести итог, хотя

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
1 голос
/ 06 мая 2011

Чтобы получить последние пять записей, это зависит от столбца, по которому вы сортируете. Давайте предположим, что это столбец даты, поэтому пример будет:

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