ВЫБЕРИТЕ строки max(Date) ПЕРЕД выполнением предложения WHERE?
У меня есть этот запрос, который повторяет все строки до определенной даты.
SELECT MAX(h.date), h.url
FROM HISTORY h
WHERE h.uid = '19'
AND h.date < (SELECT MAX(t.date)
FROM History t
WHERE t.url = 'canabalt.com'
AND t.uid = '19')
GROUP BY h.url
ORDER BY MAX(h.date) DESC
Моя проблема в том, что я должен выбрать только те строки, которые имеют максимум (Дата).
Но предложение where исключает количество строк, которые могут иметь строку max (Date), а затем ищет max (Date) в оставшихся полях.
Как я могу сначала выбрать SELECT max(Date) и только потом выполнять предложения WHERE.
1 ответ
Решение
Попробуйте разместить критерии в предложении "Наличие", которое обрабатывается после предложения "Группировать по".
Select Url, Max(Date) As MaxDate
From History
Where UID = '19'
Group By Url
Having Max( Date ) < (
Select Max( H1.Date )
From History As H1
Where H1.URL = 'canabalt.com'
And H1.UID = '19'
)
Order By Max( Date ) Desc