DISTINCT não é uma função que se aplica apenas a algumas colunas. É um modificador de consulta que se aplica a todas as colunas na lista de seleção.
Ou seja, DISTINCT reduz linhas somente se todos colunas são idênticas às colunas de outra linha.
DISTINCT deve seguir imediatamente após SELECT (junto com outros modificadores de consulta, como SQL_CALC_FOUND_ROWS). Em seguida, seguindo os modificadores de consulta, você pode listar as colunas.
-
DIREITO:SELECT DISTINCT foo, ticket_id FROM table...
Gere uma linha para cada par distinto de valores em ticket_id e foo.
-
ERRADO:SELECT foo, DISTINCT ticket_id FROM table...
Se houver três valores distintos de ticket_id, isso retornaria apenas três linhas? E se houver seis valores distintos de foo? Quais são os três valores dos seis valores possíveis de foo que devem ser exibidos?
É ambíguo como está escrito.