2016-10-05 133 views
-3

我有一个问题获取注册表,这是我的表enter image description here以最大的日期

我想这是大多数日期的物品,例如: X_1 sp0127 0.00018 X_2 sp0125 0.004

+1

欢迎来到SO。在这里你可以找到关于[问]和[mcve]的信息。您可以将数据发布为格式化文本并解释您到目前为止所尝试的内容 – Aleksej

回答

0

甲骨文?使用ROW_NUMBER()

select Item, Prov, Costo 
from 
(
select Item, Prov, Costo, row_number() over(partition by Item order by Fecha desc) as Pick_Ord 
from Table1 
) 
where Pick_Ord =1 
+2

将max(fecha)over(分项)作为max_fecha并在外查询中使用where fecha = max_fecha会更有效,而不是'row_number()'。问题的关键在于,如果我们所需要的只是最大值,那么就没有理由花费时间来通过fecha命令整个分区。找到一个集合中的最大值比订购整个集合要便宜得多。 – mathguy

+1

@mathguy谢谢,每天都是上学的一天 – JohnHC

0

“我想这是最最新的项目” 我可以建议你想要的东西,喜欢按日期

select * from some_table st 
order by st.fecha; 

排序表,或者你只是想最后日期:

select * from some_table st 
where st.fecha = max(st.fecha);