sql >> Databasteknik >  >> RDS >> Mysql

MySQL beräkna procentandelen av två andra beräknade summor inklusive en grupp per månad

Använd villkorlig aggregering. Det framgår inte om du vill titta på de senaste 12/24 månaderna, eller på månaderna 2017 och samma månader 2016. Jag förstår inte heller hur du vill räkna ut en procentsats. Jag delar årets vinst med fjolårets i nedanstående fråga. Justera detta så att det uppfyller dina behov.

select
  b_emp_id,
  month,
  turnover_this_year,
  profit_this_year,
  turnover_last_year,
  profit_last_year,
  profit_this_year / profit_last_year * 100 as diff
from
(
  select
    b_emp_id,
    month(b_date) as month,
    sum(case when year(b_date) = year(curdate()) then b_turnover end) as turnover_this_year,
    sum(case when year(b_date) = year(curdate()) then b_profit end) as profit_this_year,
    sum(case when year(b_date) < year(curdate()) then b_turnover end) as turnover_last_year,
    sum(case when year(b_date) < year(curdate()) then b_profit end) as profit_last_year
  from bookings
  where year(b_date) in (year(curdate()), year(curdate()) - 1)
    and month(b_date) <= month(curdate())
  group by b_emp_id, month(b_date)
) figures
order by b_emp_id, month;



  1. PostgreSQL:förbättrar pg_dump, pg_restore prestanda

  2. Genererar slumptal i varje rad i Oracle-fråga

  3. Hur väljer man rader med 4-byte UTF-8-tecken i Oracle DB?

  4. hitta antalet öppna anslutningar på databasen