Блджад. Есть 2 запроса в оракле, которые, по идее, аналогичные, но написанные двумя разными способами.
Для проверки аналогичности решил потыкать. count(*) в одном случае выдает 138 тысяч результатов, во втором 300 тысяч. То есть, по идее, они нихуя не аналогичные. Но вот если взять один запрос, потом MINUS второй запрос (столбцы одинаковые), то результат 0 строк. Второй MINUS первый тоже 0 строк.
В чем подъеб? Суть: первый запрос сделан через PARTITION BY, второй через GROUP. Примерные запросы:
SELECT u.id, max(p.time) OVER (PARTITION BY p.id) as last
FROM users u LEFT JOIN posts p ON p.user = u.id
WHERE p.type > 0
Второй:
SELECT u.id, max(p.time) as last
FROM users u LEFT JOIN posts p ON p.user = u.id
WHERE p.type > 0
GROUP BY u.id
