我找不到关于我的问题的答案,因为所有类似于这个问题的问题都没有在最大值中使用可为null的int并从中获得1列。
我的表格如下:
| ContractId | ContractNumber | ContractVersion |
+------------+----------------+-----------------+
| 1 | 11 | NULL |
| 2 | 11 | 1 |
| 3 | 11 | 2 |
| 4 | 11 | 3 | --get this one
| 5 | 24 | NULL |
| 6 | 24 | 1 | --get this one
| 7 | 75 | NULL | --get this one
第一个版本是NULL,以下所有版本都得到一个以1开头的数字。
所以现在我只想获取最新合约的行(如行后面的注释所示)。
因此,对于每个合同号,我想从最新的合同版本中选择合同号。
函数不能工作,因为它是一个可为null的int。
所以我想将ISNULL(SigntVersion,0)
与MAX()
函数结合使用,但我不知道如何使用。
我尝试了以下代码:
SELECT
ContractNumber,
MAX(ISNULL(ContractVersion, 0))
FROM
Contracts
GROUP BY
ContractNumber
...它返回了所有最新版本号,并结合了契约号,但我需要契约号。当我在“选择”和“分组依据”中添加“压缩”时,我将再次获得所有版本。
结果应该是:
| ContractId |
+------------+
| 4 |
| 6 |
| 7 |
这将起作用:
select ContractId,max(rank),ContractNumber from(select *,rank() over(partition by
ContractVersion order by nvl(ContractVersion,0)) desc ) rank from tablename) group by
ContractId,max(rank),ContractNumber;
当您想要基于最小/最大值选择行时,这只是一个简单的应用程序:
declare @t table (ContractId int, ContractNumber int, ContractVersion int)
insert into @t(ContractId,ContractNumber,ContractVersion) values
(1,11,NULL ),
(2,11, 1 ),
(3,11, 2 ),
(4,11, 3 ),
(5,24,NULL ),
(6,24, 1 ),
(7,75,NULL )
;With Numbered as (
select *,ROW_NUMBER() OVER (
PARTITION BY ContractNumber
order by ContractVersion desc) rn
from @t
)
select
*
from
Numbered
where rn = 1
我刚开始学习SQL。我正在使用Oracle数据库。 表emp中包含empno、ename、job、mgr、hiredate、sal、comm、deptno列。 我想从ename列中获取每个deptno的第一条记录,ename必须按asc排序。 以下SQL工作: 我想优化它,所以我不需要重写它,如果我添加一些记录到deptno列。 我用distinct-like进行了尝试
问题内容: 尝试解码JSON 时出现错误。 我用于API调用的URL在浏览器中可以正常工作,但是通过curl请求完成时会出现此错误。以下是我用于curl请求的代码。 错误发生在 完整回溯: 追溯: 问题答案: 总结评论中的对话: 不需要使用库,Python作为模块包含了相同的库。 无需解码从UTF8到unicode的响应,/ 方法可以本地处理UTF8编码的数据。 有一个非常古老的API。除非您有特
问题内容: 我有一个这样的清单: 如果仅使用该方法,它将返回答案,如果我试图找到max name ,那将是正确的,但是我试图返回其整数最大的元素。 问题答案: 之所以起作用,是因为 max 函数的 key 参数指定了一个函数,当 max 想要知道用于搜索最大元素的值时,该函数将被调用。 max 将为序列中的每个元素调用该函数。并创建一个接收列表并返回第一个(从零开始计数)元素的小函数。所以 __
我有一个数据框 我希望Col1中的唯一值与最新日期Col2一致。所需的列如下所示
我使用请求来获取和解析使用Scrapy with Scrapyrt(实时刮取)刮取的一些数据。 我是这样做的: 根据Scrapy文档,当参数设置为时,爬行器会自动请求URL并将响应传递给解析方法,解析方法是解析请求时使用的默认方法。 start_requests 类型:布尔型 可选的 spider是否应执行Scrapy.spider.start\u请求方法。在没有ScrapyRT的情况下正常运行S
问题内容: 好的,因此我对其他解决方案没有任何帮助。所以这就是我想要做的。我需要选择多列的行,其中一列的值是最大值。 这是样本数据 我需要选择整行,其中orderfileid是每个唯一商品编号的最大值 返回的数据集应该看起来像 我想我尝试过可以想到的select max(orderfileid)的每种组合 任何帮助都将被申请。谢谢 问题答案: 您需要在子查询中找到MAX值,然后使用这些结果将其连接