如果我有一个包含以下字段的表格
ID, SomeFK, SomeTime
我将如何编写查询以返回每个的最新/前3个项目(基于SomeTime
)SomeFK
。
因此,结果可能看起来像
SomeFK Sometime
0 2012-07-05
0 2012-07-04
0 2012-07-03
1 2012-07-03
1 2012-07-02
1 2012-07-01
2 2012-07-03
2 2012-07-02
2 2012-07-01
....etc....
返回特定的最新项目SomeFK
很容易,但是我只是不认为如何针对上述情况进行操作。我也觉得它应该死得很简单!
编辑:
抱歉,我错过了一些关键信息。这是针对SQL2000的,因此ROW_NUMBER()
无法使用!
SELECT SomeFk, SomeTime
FROM
(
SELECT *, ROW_NUMBER() OVER (PARTITION BY SomeFK ORDER BY sometime desc) rn
FROM yourtable
) v
WHERE rn<=3
ORDER BY somefk, rn
对于SQL 2000,我建议升级到受支持的平台。
但是如果你坚持的话。
select *
from yourtable t1
where
(select COUNT(*)
from yourtable
where somefk = t1.somefk
and sometime>=t1.sometime
) <=3
问题内容: 我有一个汽车表,其中包含汽车清单。表结构如下所示: 我想要一个查询,该查询返回每个品牌的10辆汽车。 等效于以下伪代码的内容: 这是我尝试失败的结果: -–每次返回仅返回一条记录。 这将返回每条记录。 我每辆汽车只需要10条记录。 谢谢你的帮助 问题答案: 这将给您您想要的: 要更改获取 哪 10行的选择,请更改最内层查询的顺序;我选择了id ,但您可以选择年份。只要是第一次,它将起作
按查询排序返回不同的排序,为什么? 结果: 为什么?
问题内容: 如何获取使用SQL Server的SQL查询返回的列数? 例如,如果我有如下查询: 它应该返回表A1中的总列数+表A2中的总列数。但是查询可能会更复杂。 问题答案: 这是一种方法: 您可以通过创建视图来执行类似的操作。
问题内容: 我的查询导致以下错误: 消息512,级别16,状态1,过程Item_insupd,第17行 子查询返回了多个值。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。 询问: 我怀疑这种情况的发生是因为我的子查询不包含,但是不幸的是,我不知道如何构造正确的子句。 问题答案: 我怀疑问题出在此字符串中(您的代码中的第26行): 看起来像返回多个行,所以您遇到了错
问题内容: 我有一个带有文档条目的父表,还有一个历史记录表,每次用户访问其中一个文档时,该表都会记录一个审计条目。 我正在编写一个搜索查询,以返回具有最新用户ID的文档列表(按各种条件过滤),以访问结果集中返回的每个文档。 因此对于 我希望从搜索中获得回报,例如 我可以轻松地通过一个SQL查询以及两个表之间的联接来做到这一点吗? 问题答案: 修改Andy White产生的内容,并用DB2(和ISO
在我的Android项目中,我使用Room库来处理SQLite数据库。我使用我的数据库来保存国家电话代码。我的数据库预加载了两个国家(watch大众数据库与国家代码(道:电话代码道)功能); 国家代码实体 DAO接口 在我的应用程序中,我按顺序选择国家代码(观察函数selectCountryCodeByOrder(order:Int):Int)。我在异步{}协同例程中异步调用此函数。但我有一个相当