select_statement::= SELECT [ JSON | DISTINCT ] ( select_clause | '*' ) 
	FROM `table_name`  
	[ WHERE `where_clause` ] 
	[ GROUP BY `group_by_clause` ]  
	[ ORDER BY `ordering_clause` ]  
	[ PER PARTITION LIMIT (`integer` | `bind_marker`) ]  
	[ LIMIT (`integer` | `bind_marker`) ]  
	[ ALLOW FILTERING ]
select_clause::= `selector` [ AS `identifier` ] ( ',' `selector` [ AS `identifier` ] ) 
selector::== `column_name` 
	| `term`  
	| CAST '(' `selector` AS `cql_type` ')' 
	| `function_name` '(' [ `selector` ( ',' `selector` )_ ] ')'  
	| COUNT '(' '_' ')' 
where_clause::= `relation` ( AND `relation` )*
relation::= column_name operator term
	'(' column_name ( ',' column_name )* ')' operator tuple_literal 
	TOKEN '(' column_name# ( ',' column_name )* ')' operator term 
operator::= '=' | '<' | '>' | '<=' | '>=' | '!=' | IN | CONTAINS | CONTAINS KEY 
group_by_clause::= column_name ( ',' column_name )* 
ordering_clause::= column_name [ ASC | DESC ] ( ',' column_name [ ASC | DESC ] )*
