Sql 一组内每年的病例百分比
我有以下数据集:Sql 一组内每年的病例百分比,sql,teradata,teradata-sql-assistant,Sql,Teradata,Teradata Sql Assistant,我有以下数据集: Year Grade count 2010 B2 1 2010 B 478 2010 B1 46 2010 B1 12 2010 B1 2 2010 B2 612 2010 A1 160 2010 A1 8 ... 我想确定每年(示例中只有2010年)A1和B1占当年总量的百分比,即: 478+46+12+2=538 B(B1、B、B2)合计:1202
Year Grade count
2010 B2 1
2010 B 478
2010 B1 46
2010 B1 12
2010 B1 2
2010 B2 612
2010 A1 160
2010 A1 8
...
我想确定每年(示例中只有2010年)A1和B1占当年总量的百分比,即:
478+46+12+2=538
B(B1、B、B2)合计:1202
为了得到45%的百分比。
A.也是这样。
我想我也应该用like来区分B和A的值。
我该怎么办?@dnoeth,我已经尝试了该代码,但它会给我以下消息:有序分析函数不能嵌套。你为什么接受非工作答案?:-)因为我不能测试它,但是代码应该做我一直在寻找的事情。因为我有不同的名字,所以我不得不改变它。为了解释我在做什么,我提出了一个新问题,使用了正确的名字,而不是一个例子
SEL years,
Score,
,count(0)
,100.0*count(*) /
Sum(Count(CASE WHEN grade LIKE '_1' THEN 1 end )) -- A1 & B1
Over (PARTITION BY years, Substr(grade,1,1)) AS pct -- per A/B
From table1
Group by 1,2