Java 通过数据库或算法在不同日期比较两个对象
我有一个在特定日期管理某些排名图中某些对象的排名的问题 我有开始日期和结束日期的数据。我想要净效果专栏。我怎么做?基本上是位置的变化。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比较器只会对对象进行排序。不产生净排名上升/下降 我拥有的示例数据: 数据库表: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,而在其他
对于每个对象,获取上一个排名并将其与当前排名进行比较。区别在于净效应。是的。听起来很简单,这正是我的想法。但是,列出一个清单,并给出结果中所示的适当解决方案是一个问题。第二,有些元素可能不在一个日期中,而是在另一个日期中出现。这不是更好的方式吗?虽然这不包括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
;