Eu tenho uma tabela que se parece com isso:
+----------------------------------------+
|Name | kode | jum |
+----------------------------------------+
| aman |kode1 | 2 |
| aman |kode2 | 1 |
| jhon |kode1 | 4 |
| amir |kode2 | 4 |
+--------------------+-----------+-------+
Como posso fazer uma exibição como esta com o MySQL?
kode1 kode2 count
aman 2 1 3
jhon 0 4 4
amir 0 4 4
Se você tiver um número conhecido de colunas, poderá usar uma versão estática semelhante à outra resposta. Mas se você tiver um número desconhecido, poderá usar uma declaração preparada semelhante a esta:
Veja o SQL Fiddle com demonstração
Resultado é o mesmo:
Esta é uma forma de "pivô", você deve usar esse termo de pesquisa para encontrar outras opções.
Você pode tentar algo assim:
(supondo que sua visualização de exemplo tenha um erro para
jhon
)Exemplo:
Para converter linha em coluna, você precisa usar
CASE
instrução. E para obter a contagem individualkode
, você precisa usarSUM
uma função como esta:Veja este SQLFiddle