Mysql
 sql >> база данни >  >> RDS >> Mysql

Бавна заявка:намерете разликата между стойностите на базата на min и max в друга колона за всяка група

Ако разбирам правилно, искате разликата между двата най-скорошни реда за всеки fix_id където type = 'avg' .

Ако е така, бих предложил променливи и условно агрегиране:

select fix_id,
       max(case when rn = 1 then odds end) as odds,
       max(case when rn = 1 then market end) as market,
       max(case when rn = 1 then away end) as away,
       sum(case when rn = 1 then odds when rn = 2 then - odds end) as diff,
       max(type) as type
from (select ao.*,
             (@rn := if(@f = fix_id, @rn + 1,
                        if(@fn := fix_id, 1, 1)
                       )
             ) as rn
      from (select ao.*
            from average_odds ao
            where type = 'avg'
            order by ao.fix_id, ao.updated desc
           ) ao cross join
           (select @f := -1, @rn := 0) params
     ) ao
where rn <= 2
group by fix_id;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql заявка за намиране на сума от полета със същата стойност на колоната

  2. Какви са разликите между Null, Zero и Blank в SQL?

  3. има ли начин да изброите всички запазени думи в mysql с помощта на помощната програма на командния ред mysql

  4. Показване на данни от множество заявки в една кръгова диаграма с помощта на маркер cfchart

  5. мигриране към mysql в django