0

我正在处理奇怪的 SQL 查询

 Patient_ID    Count    order_no
 1               1          1
 2               1          2  
 2               0          3
 2               0          4
 3               1          5
 3               0          6

我需要像上面那样计算病人,对于每个新病人,计数列是 1。如果重复,下面的条目应该是 0

我很困惑如何让它在 SQL 中工作

4

1 回答 1

7

为了使第一个条目为 1 和所有后续条目为 0,我相信您需要按订单号进行分区排名。请查看下面的 sqlfiddle 以测试结果。

http://www.sqlfiddle.com/#!3/4e2e2/17/0

SELECT
patient_id
,CASE WHEN r.rank = 1 
 THEN 1
 ELSE 0
 END
, order_number
FROM
(
  SELECT 
  order_number
  ,patient_id
  ,ROW_NUMBER() OVER (PARTITION BY patient_id ORDER BY order_number)[rank] 
  FROM 
  PatientTable
)r
于 2012-06-05T00:38:50.253 回答