gpt4 book ai didi

sql - SQL Server 中的窗口函数

转载 作者:行者123 更新时间:2023-12-05 08:34:59 25 4
gpt4 key购买 nike

这个会很快。我不能从 row_number() 函数中得到我想要的。我得到什么: enter image description here

我需要 row_number() 仅在具有不同 dailyDosage 的不同 patid 上递增。所以屏幕上的第 4-9 行应该都是 1。第 13 行应该是 1(因为它是一个新的 patid),第 14 行应该是 2(因为每日剂量的变化。我得到的是:

select distinct 
ROW_NUMBER() over(partition by rx.patid,quantity/daysSup*cast(REPLACE(LEFT(strength,PATINDEX('%[^0-9]%',strength)),'m','') as int)
order by rx.patid,quantity/daysSup*cast(REPLACE(LEFT(strength,PATINDEX('%[^0-9]%',strength)),'m','') as int))
,rx.patid
,rx.drugName
,rx.strength
,rx.quantity
,rx.daysSup
,rx.fillDate
,quantity/daysSup*cast(REPLACE(LEFT(strength,PATINDEX('%[^0-9]%',strength)),'m','') as int) as dailyDosage
from rx
inner join (select distinct m.patid, m.sex, m.injurylevel from members as m) as m on m.PATID=rx.patid
where ISNUMERIC(REPLACE(LEFT(strength,PATINDEX('%[^0-9]%',strength)),'m',''))=1
and REPLACE(LEFT(strength,PATINDEX('%[^0-9]%',strength)),'m','') not like '%.%'
and drugname in ('baclofen')
and daysSup !=0 and quantity !=0
and daysSup > 1
order by rx.patid

SQL 服务器 2008 R2

最佳答案

我认为您正在尝试对每日剂量进行排名。尝试使用 dense_rank 而不是 row_nubmer

Row_number 枚举行。等级将相同的值保持在一起。 Dense_rank 进行枚举,分配第一组 1,下一组 2,依此类推。排名在编号中留下空白。

关于sql - SQL Server 中的窗口函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13367951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com