【发布时间】:2017-08-15 16:19:26
【问题描述】:
我有下表:
Pets | Monday| Tuesday| Wednesday| Thursday| Friday
Dogs | 12 | 11 | 8 | 3 | 0
Cats | 16 | 13 | 5 | 8 | 4
Fish | 45 | 27 | 20 | 35 | 22
Birds| 3 | 3 | 3 | 3 | 2
我试图返回最近一天每只宠物占宠物总数的百分比,所以返回示例如下所示:
Pets | Friday| Percentage
Dogs | 0 | 0%
Cats | 4 | 14.2%
Fish | 22 | 78%
Birds| 2 | 8.3%
我想每天都这样做,我设置了一个脚本,自动填写第二天(星期六),所以新表需要显示星期六的结果。
我正在按照下面的脚本进行思考,我需要加入一些演员表等来让它返回一个表格,但想看看我是否在正确的行:
SELECT Friday / (SELECT SUM([Friday]) FROM PetSitting) from PetSitting group by pets
这里的困难是让 SQL 识别一个行列,然后将其除以同一列以获得百分比,然后移动到下一行并执行相同的操作,等等,直到您获得一个百分比列表,如所需的结果以上。
【问题讨论】:
-
什么版本的sql server
-
我会说 PIVOT 可以工作,但只有你的桌子是周一 - 周日,然后重新开始?或者它是如何工作的?
-
对于鸟类,你确定这是正确的百分比吗?
-
您是否认真建议您每天在表中添加一列?这有什么结局吗?
标签: sql sql-server tsql rows calculated-columns