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

160
Visualizações
Combine consultas SQL para mayor eficiencia

Tengo las siguientes consultas.

 SELECT DISTINCT goid, backid FROM trip WHERE userID = ? SELECT goid, count(goid) FROM trip WHERE userID = ? GROUP by goid SELECT backid , count(backid ) FROM trip WHERE userID = ? GROUP by backid

Me pregunto si hay alguna forma de fusionar las 3 consultas, o al menos las últimas 2 consultas en 1. Además, si solo se pueden fusionar las últimas 2, ¿cómo puedo agregar esencialmente los resultados de la columna 2 a 1, por ejemplo, 1011? => 20 como columna backid y goid pueden tener el mismo id y, en este caso, se debe agregar el recuento

La imagen muestra el resultado de ejemplo de la segunda consulta. La tercera consulta es exactamente igual pero de una columna diferente.

Ejemplo mínimo:

 create table trip ( goid varchar(255), backid varchar(255) ); insert into trip (goid, backid) values ('EGLL', 'EGLL'); insert into trip (goid, backid) values ('VABB', 'VABB'); insert into trip (goid, backid) values ('KSEE', 'BHAS'); insert into trip (goid, backid) values ('EGNM', 'YSSY'); insert into trip (goid, backid) values ('OBMD', 'KSBD'); insert into trip (goid, backid) values ('EGLL', 'VABB'); SELECT goid, count(goid) FROM trip GROUP by goid; SELECT backid , count(backid ) FROM trip GROUP by backid; SELECT DISTINCT goid, backid FROM trip

https://phpize.online/?phpses=ba9b2b20aab7889cbe83cb65527594e3&sqlses=9b7df2746f3828b9f34ae2ad42050b93&php_version=php8&sql_version=mysql80

En el ejemplo, eliminé el ID de usuario porque no es relevante. Pero el objetivo principal es que las consultas de selección 1 y 2 del ejemplo se fusionen en una y la salida 2 se fusione, es decir, si EGLL está en goid y backid, entonces son esencialmente 1 clave y el recuento se suma. En general, las consultas de recuento de 2 deben verse similares a la imagen combinada

ingrese la descripción de la imagen aquí

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

0

Use UNION ALL para combinar goid s y backid s y luego agregue:

 SELECT id, COUNT(*) FROM ( SELECT goid AS id FROM trip UNION ALL SELECT backid FROM trip ) t GROUP BY id;

Ver la demostración .

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