我需要能够计算包含数据的列,并且不确定从哪里开始。该表格如下:
TargetID Jan Feb Mar Apr May Months with data
1 33 Null 44 32 Null 3
2 Null 44 32 16 17 4
3 33 72 Null Null 14 3
我无法弄清楚如何使用数据列创建月份,并希望得到任何帮助。 感谢
答案 0 :(得分:2)
在SQL中执行此操作的一般方法是使用CASE
语句:
select t.*,
((case when jan is not null then 1 else 0 end) +
(case when feb is not null then 1 else 0 end) +
(case when mar is not null then 1 else 0 end) +
(case when apr is not null then 1 else 0 end) +
(case when may is not null then 1 else 0 end)
) as MonthsWithData
from t;
这是标准的SQL,应该适用于任何合理的数据库。
注意:您的数据结构看起来很尴尬。通常,您希望每个目标和月份有一行,其中一列包含计数。非规范化数据有时很有用,特别是对于最终用户报告,但总的来说,最好以“SQL”方式存储事物。