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

200
Views
Obtener el precio más alto y más bajo y el vendedor en una consulta
cod_Prod product seller price 123 A XPTO 10 123 A POTY 20 123 A MUY 15

Y consulto el precio máximo y mínimo de los productos de la siguiente manera:

 select cod_Prod, product, max(price) as maxprice, min(price) as minprice from tablename group by cod_Prod, product

Y me sale esto, que es correcto:

 cod_Prod product maxprice minprice 123 A 20 10

¿Cómo puedo obtener el vendedor con el precio más alto y más bajo en la misma consulta, como este resultado:

 cod_Prod product maxprice seller_maxprice minprice seller_minprice 123 A 20 POTY 10 XPTO
over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Usar ROW_NUMBER con lógica pivotante sería una forma de hacerlo aquí:

 WITH cte AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY cod_Prod ORDER BY price) rn_low, ROW_NUMBER() OVER (PARTITION BY cod_Prod ORDER BY price DESC) rn_high FROM tablename ) SELECT cod_Prod, product, MAX(price) FILTER (WHERE rn_high = 1) AS maxprice, MAX(seller) FILTER (WHERE rn_high = 1) AS seller_maxprice, MAX(price) FILTER (WHERE rn_low = 1) AS minprice, MAX(seller) FILTER (WHERE rn_low = 1) AS seller_minprice FROM cte GROUP BY cod_Prod, product;

captura de pantalla del enlace de demostración a continuación

Manifestación

over 4 years ago · Santiago Trujillo Report

0

Un enfoque un poco más pesado, que requerirá los complementos para cod_Prod y product:

 with get_id as( select distinct cod_Prod , product from tablename where cod_Prod = 123 and product = 'A' ), get_max as( select st.cod_Prod , st.product , st.seller, st.price from tablename st, get_id main where st.cod_Prod = main.cod_Prod and st.product = main.product order by st.price desc limit 1 ), get_min as( select st.cod_Prod , st.product , st.seller, st.price from tablename st, get_id main where st.cod_Prod = main.cod_Prod and st.product = main.product order by st.price limit 1 ) select get_id.cod_Prod , get_id.product , get_min.price as min_price, get_min.seller as seller_minprice , get_max.price as max_price, get_max.seller as seller_maxprice from get_id left join get_max on get_id.cod_Prod = get_max.cod_Prod and get_id.product = get_max.product left join get_min on get_id.cod_Prod = get_min.cod_Prod and get_id.product = get_min.product
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!