Варианты использования для боковых, которые не включают функцию возврата набора
Я читал этот пост на днях:
http://blog.heapanalytics.com/postgresqls-powerful-new-join-type-lateral/
Я подозревал, что некоторые из утверждений в посте, возможно, не были точными. Этот в частности:
"Без боковых объединений нам пришлось бы прибегнуть к PL/pgSQL для выполнения этого анализа. Или, если бы наш набор данных был небольшим, мы могли бы избежать сложных, неэффективных запросов".
sum(1)
а также order by time limit 1
подход показался мне менее чем идеальным, и я подумал, что этот анализ можно выполнить с помощью обычных левых соединений, а не боковых левых. Итак, я пришел с доказательством концепции:
https://github.com/ajw0100/snippets/tree/master/SQL/lateral
Является ли мой вывод в README правильным? Делает что-нибудь заselect...from...where
в соединенном в боковом подзапросе форсирует вложенный цикл? В таком случае, действительно ли боковое действительно полезно только для функций, возвращающих множество, как предлагают документы? Кто-нибудь знает какие-либо варианты использования для боковых, которые не включают функцию возврата набора?