我有一个Oracle查询
select max(m.id),
m.someId keep (DENSE_RANK FIRST ORDER BY m.UpdateDate desc)
from MyTable m
groupBy m.someId
对于这样的数据:
id UpdateDate someId
1 20-01-2012 10
2 20-01-2012 10
3 01-01-2012 10
4 10-02-2012 20
5 01-02-2012 20
6 01-04-2012 30
会完全返回我:
2 10
4 20
6 30
因此,对于每个someId,它都会搜索最新的updateDate并确实返回相应的id
。(如果最新日期有多个ID,则采用最新ID)。
但是对于SQL Server,此查询将以相同的方式工作吗?我是说这个建筑keep (dense_rank first order by ..)
?
我认为您的特定查询不会运行SQL Server。但是您可以通过执行以下操作获得相同的结果:
SELECT id, SomeId
FROM ( SELECT *, ROW_NUMBER() OVER(PARTITION BY someId ORDER BY UpdateDate DESC, id DESC) Corr
FROM MyTable) A
WHERE Corr = 1
本文向大家介绍详解SQLServer和Oracle的分页查询,包括了详解SQLServer和Oracle的分页查询的使用技巧和注意事项,需要的朋友参考一下 不管是DRP中的分页查询代码的实现还是面试题中看到的关于分页查询的考察,都给我一个提示:分页查询是重要的。当数据量大的时候是必须考虑的。之前一直没有花时间停下来好好总结这里。现在又将Oracle视频中关于分页查询的内容看了一遍,发现很容易就懂了
问题内容: 有没有像MySQL中的任何功能和像甲骨文和其他DBMS提供的? 我想在查询中生成一个ID,但是在MySQL中这些功能不存在。还有其他选择吗? 问题答案: Mysql没有它们,但是您可以使用使用用户定义的变量的以下表达式进行模拟: 像这样: 但是如果您要重用该会话,它将仍然被设置,因此您需要像这样重置它: 参见SQLFiddle。 可能,但是火车残骸;我建议在应用程序层处理该要求。
问题内容: 连接到MS SQL Server的应用程序将创建视图,在该视图中将对单行结果进行分析,包括1-10k条记录的聚合。整个结果视图中的适用标准将具有数十至数万个结果。然后,将按视图中的某些列(用户指定的)对视图+条件进行排序,这些列最有可能是聚合的列。当使用聚合列进行排序时,预计响应时间会迅速下降。 不久前,使用实例化视图可以很容易地解决此问题(在Oracle 9i中)。有关如何在MS S
问题内容: 我们将进行并行测试,以将旧系统与新的闪亮版本进行比较。我们有一个Oracle数据库表A,用于存储遗留系统的数据,以及一个等效表B,用于存储新系统的数据,因此在测试期间,该数据库将被非规范化。(此外,旧版系统和表A是固定的- 不允许更改) 我想做的是允许A上不常见的DML操作传播到B,反之亦然。我从一对触发器开始,但是遇到了一个明显的问题,即当触发器运行时,表正在变异,并引发异常。 是否
问题内容: 如何将结果集限制为给定列的 n个 不同值,其中实际行数可能更高? 输入表: 所需的输出,其中limit different = 5个client_id的不同值: 该平台旨在用于MySQL。 问题答案: 您可以使用子选择
问题内容: 我有一些最初存储在通用Javascript对象中的数据,其ID为键: 但是,我发现浏览器在循环浏览时并不能保证特定的对象顺序,因此在上面的“ 3”将出现在“ 7”之前。我改用这样的数组格式: 现在,我可以按正确的顺序循环,但是不能进行快速查找,例如,不必循环遍历数组。 是否有结合两种方法的好方法?我宁愿避免为每种格式使用单独的对象,因为该对象非常大(数百个元素)。 问题答案: 我也遇到