SQL Server
我正在使用SQL从R
. 我可以使用任何一个来解决我的问题。
这是我的数据:
structure(list(id = c(1, 2, 3, 1, 2), FY = c(2010, 2008, 2009, 2011, 2009), sales = c(100, 200, 300, 400, 500)), .Names = c("id", "FY", "sales"), row.names = c(NA, -5L), class = "data.frame")
我称之为测试
id FY sales
1 2010 100
2 2008 200
3 2009 300
1 2011 400
2 2009 500
编辑:我想找到的是客户保留率,即谁在 2008 年和 2009 年购买;谁在 2009 年和 2010 年购买过;谁在 2010 年和 2011 年购买。
最终结果网格将把 1 或非空值放在客户被保留到明年的年份。
我试图得到的最终结果将如下所示:
id 2008 2009 2010 2011
1 1
2 1
使用这种类型的表格,我可以计算每年的保留百分比。
现在,我可以编写各种CASE
语句和子查询来创建这样的网格,但我的实际数据已经超过 10 年了,我讨厌这些年来硬编码。R
也许,一旦数据是,这样做会更容易cast
,但我很难编码。