Gents, I have a suggestion for DISTINCT ON clause syntax. DISTINCT ON (expression(s) [ORDER BY expression(s)]) Determines the precedence within each DISTINCT ON group (i.e. the ‘first’ row to be picked)
Motivation • Using the query-wide ORDER BY clause to determine which record to pick mixes two unrelated concerns, ‘first’ row selection and result-set ordering. This may be confusing; • The DISTINCT ON expression(s) must match the leftmost ORDER BY expression(s). This may cause inconvenience and require nesting as a sub-query to order the result-set. Pros • Backward compatibility. If the local ORDER BY clause is missing then the current rules shall apply; • Familiar and consistent syntax and semantics, the same as in *_agg functions; • Clear distinction of first row selection and result-set ordering; • Good readability; • The DISTINCT ON expression(s) do not have to match the leftmost ORDER BY expression(s). Cons • Possible extra verbosity Best regards, Stefan 1 1 1 1 MicrosoftInternetExplorer4 0 2 DocumentNotSpecified 7.8 磅 Normal 0