我使用以下查询可以从table_name
检索A和C的最后一条记录。
select * from
( select *,row_number() over(partition by A order by B desc) rn
from table_name
) a where rn=1
Table_name
包含字段A,B(日期),C(整数),我还有另一个表Table_NameB
,其中包含字段A,C_P,C_N(示例值如下)
A, C_P, C_N
1, 1, 10
2, -10, -20
3, 1, 100
我想加入此表并即时计算值
如果Table_Name
包含
A,B, C
1, 2019-01-01,1000
2, 2019-02-02, -15
3, 2019-02-03, 0
您能否通过加入Table_NameB
帮助获得以下输出?
结果将是
A, C, C_P, C_N
1, 1000, 1, 10, OVER <-- as 1000 > 1 > 10
2, -15, -10, -20, NORMAL <-- as -15 >-10 >-20
3, 0, 1, 100, UNDER <-- as 0 < 1 < 100
答案 0 :(得分:0)
您可以这样做
SELECT tablea.a, tableb.c, tablea.C_P, tablea.C_N,
(CASE
WHEN tableb.c > tablea.C_P AND tableb.c > tablea.C_N THEN "OVER"
WHEN tablea.C_N > tablea.C_P AND tablea.C_N > tableb.c THEN "NORMAL"
WHEN tableb.c < tablea.C_P AND tableb.c < tablea.C_N THEN "UNDER"
END
) as result
FROM tablea
INNER JOIN tableb ON (tablea.a = tableb.a)
您可以在go4smart上查看更多详细信息
希望会有所帮助。
谢谢