SQL命令,以联接和计数分组列中的不同项

SQL命令,以联接和计数分组列中的不同项,sql,sql-server,Sql,Sql Server,这个命令只适用于两列,但在我的项目中,我希望2显示多达八列的数据。任何人都可以使用这样一个命令来提供帮助,该命令以与上述命令相同的方式生成结果,但只生成八列。您需要逻辑来确定是什么导致了某些事情的延迟。然后,您可以使用条件聚合执行您想要的操作,因为您想要的字段似乎来自同一个表: select t1.ks, t1.[# Tasks], coalesce(t2.[# Late], 0) as [# Late] from (SELECT ks, COUNT(*) AS '# Tasks' FRO

这个命令只适用于两列,但在我的项目中,我希望2显示多达八列的数据。任何人都可以使用这样一个命令来提供帮助,该命令以与上述命令相同的方式生成结果,但只生成八列。

您需要逻辑来确定是什么导致了某些事情的延迟。然后,您可以使用条件聚合执行您想要的操作,因为您想要的字段似乎来自同一个表:

 select t1.ks, t1.[# Tasks], coalesce(t2.[# Late], 0) as [# Late]
 from 
(SELECT ks, COUNT(*) AS '# Tasks' FROM Table GROUP BY ks) t1
left join
(SELECT ks, COUNT(*) AS '# Late' FROM Table GROUP BY ks) t2
 on  t1.ks = t2.ks

您正在应用group by,因此您需要从其他列avg、sum、count、max、,最小值或任意随机值一个一个的一个一个的优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀优秀上表我可以有一个命令来计算每列的值吗?注释oneA oneB oneC oneD oneE优秀8 4 2 0良好2 6 4 7 9公平0 4 1 1
select ks, count(*) as numprojects,
       sum(case when ***late condition goes there *** then 1 else 0 end) as numlate
from table t
group by ks;