У меня есть две таблицы 'sites' и 'index_log'. Таблица «sites» - это информация о сайтах (userid, name, description ...). В таблице index_log указаны столбцы date, index_count и siteid. Поэтому я хочу, чтобы получить последнюю и предыдущую index_log строки для каждого сайта, где Идентификатор_пользователь = 10. Это мой вариант:Присоединиться к Max и pre-Max row
SELECT ff.id,
ff.siteurl,
ff.last_count,
ff.last_date,
il2.index_count as previous_count,
MAX(il2.date) as previous_date
FROM (
SELECT s.siteurl,
s.id,
il.index_count as last_count,
MAX(il.date) as last_date
FROM sites s
LEFT JOIN index_logs il ON il.siteid = s.id
WHERE s.userid = 10
GROUP BY s.id
) as ff
LEFT JOIN index_logs il2 ON il2.siteid = ff.id AND il2.date < ff.last_date
GROUP BY ff.id
Но в этой колонке варианта index_count (последний и предыдущий) не совпадает с максимальной датой строкой. Я надеюсь на вашу помощь.
Это не действительный запрос SQL Server, выглядит как MySQL? – dnoeth
Что заставляет вас говорить, что @dnoeth? – Squirrel
'GROUP BY' не включает все эти неагрегированные столбцы в списке SELECT ... – dnoeth