Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

167
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!