mameyugo;

, 0 comentarios, 7318 lecturas, por: Jose Manuel Muras Rodrigo

Lo primero que hay que decir es que estas funciones ( LAST() y FIRST() ) presentes en SQL estandar no estan presentes en MySQL, pero podemos conseguir el mismo efecto con una pequeña trampa:

 
  1. SELECT
  2.     id,
  3.     MIN(valor) AS minimo,
  4.     MAX(valor) AS maximo,
  5.     AVG(valor) AS media,
  6.     SUBSTRING_INDEX(GROUP_CONCAT(valor ORDER BY fecha), ',', 1 )
    AS primer_valor,
  7.     SUBSTRING_INDEX(GROUP_CONCAT(valor ORDER BY fecha DESC), ',', 1 )
    AS ultimo_valor
  8. FROM datos
  9. GROUP BY agrupacion;
 

Esta funcion es util cuando queremos sacar los distintos valores de una tabla de historicos por ejemplo, como esta:

 

id producto_id precio fecha
1 23 50.00 2014-02-15
1 23 53.00 2014-02-18
1 23 60.00 2014-02-20
1 23 48.00 2014-02-23
1 23 43.00 2014-02-25
1 23 51.00 2014-02-28

En esta tabla valor seria el campo precio y agrupacion seria producto_id

mysql
Unete!