gpt4 book ai didi

mysql - 计算一个人连续出现的次数 - SQL

转载 作者:可可西里 更新时间:2023-11-01 07:48:15 25 4
gpt4 key购买 nike

我有一个像这样的表:

Name | ID | Event
Smith| 1 |
Smith| 2 | Y
Smith| 3 |
Jones| 1 |
Jones| 2 | Y
Jones| 3 |
Jones| 4 | Y

我想计算每个人在每个时间点看到事件的次数,例如:

Name | ID | Event | Event Count
Smith| 1 | | 0
Smith| 2 | Y | 1
Smith| 3 | | 1
Jones| 1 | | 0
Jones| 2 | Y | 1
Jones| 3 | | 1
Jones| 4 | Y | 2

我猜我不能在 SQL 中执行此操作?如果不是,您能否非常清楚我是如何在 SAS 中执行此操作的(或任何合适的方式),因为我是新手!

(仅供引用,这使我能够区分每个事件之前或之后发生的行 - 即按 Event = blank 过滤,第一个事件之前发生的任何 0,之后发生的任何 1,等等。可能有一个更简单的方法。)

谢谢!

最佳答案

如果你想走 SAS 路线,它会按顺序读取数据,因此非常擅长解决此类问题

data have;
infile datalines missover;
input Name $ ID Event $;
datalines;
Smith 1
Smith 2 Y
Smith 3
Jones 1
Jones 2 Y
Jones 3
Jones 4 Y
;
run;

proc sort data=have;
by name id;
run;

data want;
set have;
by name id;
if first.name then event_count=0;
event_count+(event='Y');
run;

关于mysql - 计算一个人连续出现的次数 - SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15436148/

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