Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

159
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda