Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过数据库或算法在不同日期比较两个对象_Java_Mysql_Sql_Database_Algorithm - Fatal编程技术网

Java 通过数据库或算法在不同日期比较两个对象

Java 通过数据库或算法在不同日期比较两个对象,java,mysql,sql,database,algorithm,Java,Mysql,Sql,Database,Algorithm,我有一个在特定日期管理某些排名图中某些对象的排名的问题 我有开始日期和结束日期的数据。我想要净效果专栏。我怎么做?基本上是位置的变化。e、 g对于A,开始日期位置为空。因此,排名为1。所以+5。对于B,开始=4,结束=2,所以4-2=+2/\rise 数据库查询是一个更好的解决方案还是java代码?不过,我在数据库中有数据 任何人都可以显示代码和查询,哪种方式是首选的。我会欣赏这两种方法或至少是策略。如何创造净效果 我想展示的结果是: 更多信息:编辑-1 A不在B之前。A在某一日期为1,而在其他

我有一个在特定日期管理某些排名图中某些对象的排名的问题

我有开始日期和结束日期的数据。我想要净效果专栏。我怎么做?基本上是位置的变化。e、 g对于A,开始日期位置为空。因此,排名为1。所以+5。对于B,开始=4,结束=2,所以4-2=+2/\rise

数据库查询是一个更好的解决方案还是java代码?不过,我在数据库中有数据

任何人都可以显示代码和查询,哪种方式是首选的。我会欣赏这两种方法或至少是策略。如何创造净效果

我想展示的结果是:

更多信息:编辑-1

A不在B之前。A在某一日期为1,而在其他日期为1到5。开始日期和结束日期只是a、b、c、d、e..z有一些职位/职级编号的两个不同日期

a,b,c,d,…z是无序的,但它们只具有秩的som数。每个数字/等级+ABCD..Z组合在每个特定日期都是不同的

java比较器只会对对象进行排序。不产生净排名上升/下降

我拥有的示例数据:

数据库表:


对于每个对象,获取上一个排名并将其与当前排名进行比较。区别在于净效应。是的。听起来很简单,这正是我的想法。但是,列出一个清单,并给出结果中所示的适当解决方案是一个问题。第二,有些元素可能不在一个日期中,而是在另一个日期中出现。这不是更好的方式吗?虽然这不包括C?sqlfiddle.com/!2/10418/25/0如何接受C?请注意,我处理了您的C问题,其中C不再位于前N名,而是在前一天位于前N名。另一种方法虽然很好,但没有处理这种情况。也可以使用完全外部联接。
    RANK        NET EFFECT      object at END date      object at START date
    1           A   +5 /\           A                   C
    2           B   +2 /\           B                   D
    3           Z   +2 /\           Z                   E
    4           D   -2 \/           D                   B
    5           E   -2 \/           E                   Z
                C   -5 \/           -                   -   
    RANK        date        object      
    1           x           A               
    2           x           B               
    3           x           Z              
    4           x           D              
    5           x           E   


    RANK        date            object
    1           y                C
    2           y                D
    3           y                E
    4           y                B
    5           y                Z
  SELECT t1.topper_position
       , t0.app_store_id
       , COALESCE(t2.topper_position, 6) - COALESCE(t1.topper_position, 6) AS delta2
       , COALESCE(t1.fetch_date, t2.fetch_date) AS cur_date
    FROM (SELECT DISTINCT app_store_id
            FROM crawler_2_application_details
           WHERE topper_position <= 5
             AND fetch_date IN ('2014-04-19 19:56:24', '2014-04-18 19:56:24')
         ) AS t0
    LEFT JOIN crawler_2_application_details AS t1
      ON t1.fetch_date = '2014-04-19 19:56:24' 
     AND t0.app_store_id = t1.app_store_id 
    LEFT JOIN crawler_2_application_details AS t2
      ON t2.fetch_date = '2014-04-18 19:56:24' 
     AND t0.app_store_id = t2.app_store_id 
   ORDER BY t1.topper_position IS NULL
          , t1.topper_position
  ;