es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SQL – seleccionar fecha (columna created_at) para coincidencia de función de agregación interesante.

Tengo una tabla:

“id client price created_at
1 0x67 99 2021-01-23
2 0x67 22 2021-01-23
3 0x67 10 2021-01-25
4 0x67 88 2021-01-28″

Necesito una consulta SQL que encuentre los valores MÍNIMO y MÁXIMO, con la fecha de creación asociada.
Así que espero el siguiente resultado:

“client price_min price_min_date price_max price_max_date
0x67 10 2021-01-25 99 2021-01-23”

Base de datos Clickhouse.

¡Gracias!

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr esta tarea, puede utilizar las cláusulas SELECT y GROUP BY con subconsultas. Aquí está la consulta SQL para Clickhouse DB:

    SELECT 
      client, 
      min_price.price_min, 
      min_price.price_min_date, 
      max_price.price_max, 
      max_price.price_max_date 
    FROM (
      SELECT 
        client, 
        MIN(price) as price_min, 
        created_at as price_min_date 
      FROM 
        [nombre_de_tabla] 
      GROUP BY 
        client
      ) as min_price 
    JOIN (
      SELECT 
        client, 
        MAX(price) as price_max, 
        created_at as price_max_date 
      FROM 
        [nombre_de_tabla] 
      GROUP BY 
        client
      ) as max_price 
    ON 
      min_price.client = max_price.client
    

    Reemplace [nombre_de_tabla] con el nombre real de su tabla.

    Explicación:
    – La consulta selecciona el cliente, el precio mínimo, la fecha mínima, el precio máximo y la fecha máxima para cada cliente.
    – Se utilizan dos subconsultas para encontrar el precio mínimo y máximo, junto con sus fechas, para cada cliente.
    – Los resultados de estas subconsultas se unen en la columna del cliente.

Comments are closed.