Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

196
Visualizações
¿Cuál es la forma más fácil de crear una columna que cuente una variable categórica en PostgreSQL? ¿Quizás algún tipo de giro?

Digamos que tengo la siguiente tabla:

 Id color A00 blue A00 blue A99 red A99 blue A95 yellow A97 green

Me gustaría obtener algo como:

 Id blue red yellow green A00 2 0 0 0 A99 1 1 0 0 A95 0 0 1 0 A97 0 0 0 1

¿Cuál es la forma más fácil de hacer esto?

Pensé en esto:

 select Id, sum(case when color='blue' then 1 else 0 end) as blue, sum(case when color='red' then 1 else 0 end) as red, . . . from table

El problema es que tengo tantos colores que hacer esto sería agotador. hay una manera mas facil?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Hay muchas maneras de lograr esto:

USO DE FILTRO

 select id, count(*) filter (where color='blue') as "Blue", count(*) filter (where color='red') as "Red", count(*) filter (where color='yellow') as "Yellow", count(*) filter (where color='green') as "Green" from samp group by id

Violín

tu método

 select id, sum(case when color='blue' then 1 else 0 end) as "Blue", sum(case when color='red' then 1 else 0 end) as "Red", sum(case when color='yellow' then 1 else 0 end) as "Yellow", sum(case when color='green' then 1 else 0 end) as "Green" from samp group by id

Violín

Uso de tabulaciones cruzadas

 select * from crosstab( 'select id, color,count(*) from samp group by id,color order by id,color', 'select distinct color from samp order by color' ) as ct("ID" varchar, "blue" int,"green" int,"red" int,"yellow" int);

Nota: debe crear una extensión para la tabla de referencias cruzadas utilizando la consulta a continuación

 CREATE EXTENSION IF NOT EXISTS tablefunc;
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda