Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Emerson Luiz

Query MySQL

Recommended Posts

Amigos,

 

A seguinte query:

 

SELECT operadora, tipo, count(tipo) as total FROM port_cdr GROUP BY operadora,tipo ORDER BY operadora

 

retorna:

 

+--------------+-------+-------+
| operadora    | tipo  | total |
+--------------+-------+-------+
| ALGAR        | FIXO  |  3177 |
| ALGAR        | MOVEL |     1 |
| ALGAR        | RADIO |     9 |

Gostaria da ajuda de vocês para que os resultados fiquem em uma unica linha. Exemplo:

 

 

ALGAR 3177 1 9

 

Podem me ajudar com essa query ?

 

Obrigado

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

 

estou tentando assim:

 

SELECT DISTINCT operadora,
(SELECT count(tipo) FROM port_cdr WHERE tipo='FIXO') AS fixo,
(SELECT count(tipo) FROM port_cdr WHERE tipo='MOVEL') AS movel,
(SELECT count(tipo) FROM port_cdr WHERE tipo='RADIO') AS radio
FROM port_cdr GROUP BY tipo,operadora ORDER BY operadora;
e recebo:
+--------------+-------+-------+-------+
| operadora    | fixo  | movel | radio |
+--------------+-------+-------+-------+
| ALGAR        | 20502 |  3524 |     9 |

Porem a soma acima é de todos os registros, e nao a operadora...

 

Pbrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente com COUNT( IF(...) ):

SELECT
  DISTINCT operadora,
  COUNT( IF( tipo='FIXO', 1, NULL ) ) AS fixo,
  COUNT( IF( tipo='MOVEL', 1, NULL ) ) AS movel,
  COUNT( IF( tipo='RADIO', 1, NULL ) ) AS radio
FROM port_cdr
GROUP BY tipo, operadora
ORDER BY operador

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.