У меня есть данные таблицы, которые выглядят так:
id | keyword | count | date
1 | ipod | 200 | 2009-08-02
2 | ipod | 250 | 2009-09-01
3 | ipod | 150 | 2009-09-04
4 | ipod | NULL | 2009-09-07
Теперь я получаю счетчик строки, которая имеет самую новую дату, но имеет ненулевое значение. В этом случае строка 3 со счетом 150.)
например
SELECT `keyword`, `count` , max( `date` )
FROM `keywords`
WHERE keyword = "ipod"
AND `count` IS NOT NULL
GROUP BY keyword
Это вернуло правильную дату, но не верный счет (вернул 200). Я также попытался сделать левое соединение с самим собой.
SELECT `t1`.`keyword` , `t2`.`count` , max( `t1`.`id` )
FROM `keywords` `t1`
LEFT JOIN `keywords` `t2` ON `t1`.`id` = `t2`.`id`
WHERE `t1`.`keyword` = 'ipod'
AND `t1`.`count` IS NOT NULL
GROUP BY `t1`.`keyword`
И это действительно получило максимальный идентификатор, но это не сработало, как я надеялся, и вернуло только 200.
Помощь