在一个项目中,我正在工作,我有一个表,你可以看到下面。在前端,我只需要显示按entity_id分组发布的记录。例如,在下面的示例中,应该只显示id 1,11,16和19。我不知道怎么做这个查询。我用子查询等尝试了几种方法,但没有一种有效。我猜应该有办法找回这些数据。我错过了什么?
| id | revision | entity_id | status
========================================
| 1 | 1 | 1 | published
| 2 | 2 | 1 | archived
| 3 | 1 | 2 | draft
| 4 | 2 | 2 | draft
| 5 | 3 | 2 | draft
| 6 | 4 | 2 | ready
| 7 | 5 | 2 | draft
| 8 | 6 | 2 | published
| 9 | 7 | 2 | published
| 10 | 8 | 2 | ready
| 11 | 9 | 2 | published
| 13 | 1 | 3 | draft
| 14 | 1 | 4 | draft
| 15 | 2 | 4 | draft
| 16 | 3 | 4 | published
| 18 | 1 | 5 | draft
| 19 | 2 | 5 | published
| 20 | 3 | 5 | draft
| 21 | 10 | 5 | archived
您可以使用row_number()
枚举每个实体的“已发布”行,然后将最新的行:
select t.*
from (select t.*,
row_number() over (partition by entity_id, status order by revision desc) as seqnum
from t
where status = 'published'
) t
where seqnum = 1;
或者,可以在where
子句中使用筛选:
select t.*
from t
where t.id = (select max(t2.id)
from t t2
where t2.entity_id = t.entity_id and
t2.status = 'published'
);
这将为每个实体返回一行--“已发布”的id
最大的行。
问题内容: 说有这样的表: 字段名称很容易解释。我想选择同时具有1和3 的,因此在此示例中仅。我想到了类似的 清单,之后我想列出该组中存在的。我怎么做? 问题答案: 如果没有任何唯一约束,请尝试: 如果仅尝试检测两个值,请使用此子句: 如果post_id和tag_id都具有唯一约束,那么这也应该起作用:
在oracle DB中检索具有大组最大值的行时遇到问题。 我的桌子看起来是这样的: id,col1,col2,col3,col4,col5,date_col 谢谢你的提示! 干杯
我想编写一个简单的查询来选择PostgreSQL中的许多列。但是,我一直收到错误-我尝试了几个选项,但它们对我不起作用。目前我收到以下错误: 组织。postgresql。util。PSQLException:错误:“列”处或附近出现语法错误 要获取具有值的列,请尝试以下操作: 有什么想法吗?
我使用的是Maven3.6。 感谢帮助
问题内容: 我继承了具有以下结构的表: 是一个标识字段和主键,并且and字段上有非唯一索引。 什么是最有效的方式来获得每个项目名称的最新记录,即在上述行的表 1 , 4 和 6 ,因为他们是最先进的日期项物品应归还 一 , 乙 和 Ç 分别。 问题答案: SQL Server 2005(开始):
问题内容: 我有一个3表SQLServer数据库。 将事物归因于项目后,会在ProjectThingLink表中放置一个条目。事情可以在项目之间移动。CreatedDate也用于了解事物上次移动到哪个项目。 我正在尝试创建所有与事物当前已链接到它们的项目的列表,但是我的大脑却失败了。 有一个简单的方法可以做到这一点吗? 问题答案: 注意:评论后已更正
问题内容: 我想编写一个简单的查询来选择PostgreSQL中的许多列。但是,我不断收到错误-我尝试了一些选项,但它们对我没有用。目前,我收到以下错误: org.postgresql.util.PSQLException:错误:“列”处或附近的语法错误 要获取具有值的列,请尝试以下操作: 有任何想法吗? 问题答案: 是 保留字 。除非您双引号,否则不能将其用作标识符。像:。 不过,这并不意味着您应
问题内容: 我已经看到了很多解决此类问题的解决方案尤其是此SQL仅选择在Column上具有Max Value的行,但是似乎没有一个合适的解决方案: 我有以下表格布局,即附件的版本控制,这些附件绑定到实体: 输出应该是最大版本号,按group_id和Entity_id分组,如果有帮助,我只需要一个单个entity_id的列表即可: 我想出的是这种自我加入: 但是,只有在不同的实体不共享相同的组号的情