MySQL:如何根据日期获得行之间的百分比差异

时间:2016-07-26 21:26:30

标签: mysql

ID     report_Date     total_points
---    -----------     -------------
123    2016-07-01      300
123    2016-07-02      600
333    2016-07-01      234
333    2016-07-02      434

了解如何进行MySQL / SQL查询,根据提供的两个日期查找total_points的百分比。

因此,如果我在2016-07-01和2016-07-02查询它,它会给我:

  • ID
  • 2016-07-01 total_points与2016-07-02 total_points之间的百分比差异

结果如:

ID    Percentage_Difference
---   ---------------------
123   100
333   85.47

关于最佳处理方法的建议?

1 个答案:

答案 0 :(得分:0)

SELECT x.id
     , ((y.total_points-x.total_points)/x.total_points) * 100 pct
  FROM my_table x
  JOIN my_table y
    ON y.id = x.id
   AND y.report_date = '2016-07-02' 
 WHERE x.report_date = '2016-07-01';
如果您愿意,可以从y.report_date计算

x.report_date,但该要求不在原始问题中。

请注意,“ID”通常表示代理PRIMARY KEY。在这种情况下,您似乎有一个复合PRIMARY KEY。