gpt4 book ai didi

java - 通过数据库或算法比较不同日期的两个对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:00:24 24 4
gpt4 key购买 nike

http://sqlfiddle.com/#!2/10418/1/0

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

我有开始日期和结束日期的数据。我想要净效应列。我该怎么做?它基本上是位置的变化。例如,对于 A,开始日期位置为空。所以它来到了1等级。所以+5。对于 B,start=4,end=2 所以 4-2= +2/\rise

  1. 数据库查询是更好的解决方案还是 Java 代码(尽管我在数据库中有数据)。

  2. 任何人都可以显示代码和查询(无论哪种方式都是首选)。 (我会欣赏这两种方法或至少是策略)。如何创建 NET EFFECT。

我要展示的结果:

    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 \/ - -

更多信息:编辑 - 1

A 不在 B 之前。A 在某个日期位于 #1,而在另一个日期没有位置(在 1 到 5 内)。开始日期和结束日期只是 2 个不同的日期,a、b、c、d、e..z 有一些位置/等级编号。

a,b,c,d,..z 没有顺序,只有 #number of rank。每个#number/rank + ABCD..Z 组合在每个特定日期都是不同的。

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

我拥有的示例数据:

数据库表:

    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

最佳答案

http://sqlfiddle.com/#!2/10418/29

  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
;

关于java - 通过数据库或算法比较不同日期的两个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23174416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com