simple_select_clause ::=
	'SELECT' ( 'ALL' |  ) ( ( target_elem ) ( ( ',' target_elem ) )* ) ( 'FROM' ( ( table_ref ) ( ( ',' table_ref ) )* ) ( ( 'AS' 'OF' 'SYSTEM' 'TIME' a_expr ) |  ) |  ) ( ( 'WHERE' a_expr ) |  ) ( 'GROUP' 'BY' ( ( a_expr ) ( ( ',' a_expr ) )* ) |  ) ( 'HAVING' a_expr |  ) ( 'WINDOW' window_definition_list |  )
	| 'SELECT' ( 'DISTINCT' ) ( ( target_elem ) ( ( ',' target_elem ) )* ) ( 'FROM' ( ( table_ref ) ( ( ',' table_ref ) )* ) ( ( 'AS' 'OF' 'SYSTEM' 'TIME' a_expr ) |  ) |  ) ( ( 'WHERE' a_expr ) |  ) ( 'GROUP' 'BY' ( ( a_expr ) ( ( ',' a_expr ) )* ) |  ) ( 'HAVING' a_expr |  ) ( 'WINDOW' window_definition_list |  )
	| 'SELECT' ( 'DISTINCT' 'ON' '(' ( ( a_expr ) ( ( ',' a_expr ) )* ) ')' ) ( ( target_elem ) ( ( ',' target_elem ) )* ) ( 'FROM' ( ( table_ref ) ( ( ',' table_ref ) )* ) ( ( 'AS' 'OF' 'SYSTEM' 'TIME' a_expr ) |  ) |  ) ( ( 'WHERE' a_expr ) |  ) ( 'GROUP' 'BY' ( ( a_expr ) ( ( ',' a_expr ) )* ) |  ) ( 'HAVING' a_expr |  ) ( 'WINDOW' window_definition_list |  )
