Variáveis ​​MySql e php

Estou recebendo um erro com isso no php. Qual é a maneira correta de formatar esta string para passar para mysql_query () no php?

SELECT count(*) FROM agents INTO @AgentCount;

SELECT user_agent_parsed, user_agent_original, COUNT( user_agent_parsed ) AS thecount, 
    COUNT( * ) / ( @AgentCount) AS percentage
FROM agents
GROUP BY user_agent_parsed
ORDER BY thecount DESC LIMIT 50;

Em php, aqui está como eu configurei o $ query

      $query = "
      SELECT count(*) FROM agents INTO @AgentCount;

      SELECT user_agent_parsed, user_agent_original, COUNT( user_agent_parsed ) AS thecount, 
          COUNT( * ) / ( @AgentCount) AS percentage
      FROM agents
      GROUP BY user_agent_parsed
      ORDER BY thecount DESC LIMIT 50";

Essa consulta exata funcionará bem se eu colocá-lo diretamente no MySql através de uma sessão de linha de comando. Preciso emitir duas chamadas php separadas para mysql_query () e armazenar o primeiro resultado?

Eu estou recebendo o erro abaixo:

Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a sintaxe correta para usar perto de 'SELECT user_agent_parsed, user_agent_original, COUNT (user_agent_parsed) como a conta' na linha 3

A razão para não usar uma sub seleção e escolher uma variável MySql é evitar que uma count () aconteça em cada cálculo de porcentagem. Embora seja possível, o mecanismo está otimizando para isso. Até agora, não consegui confirmar isso. Eu também ouvi que sub seleções quase sempre não são ótimas.

EXPLAIN me diz isso:

id  select_type table   type    possible_keys   key key_len ref rows    Extra
1   PRIMARY agents  index   NULL    user_agent_parsed   28  NULL    82900   Using temporary; Using filesort
2   SUBQUERY    NULL    NULL    NULL    NULL    NULL    NULL    NULL    Select tables optimized away

questionAnswers(2)

yourAnswerToTheQuestion