Python 如果列的值为零值,如何从SQL查询中获取值?
基本上我有一个训练数据集,但我希望它显示为零,而不是根本不显示 下面的节目都是不完整和完整的,但我希望它显示不完整,并且来自于零不完整为0的部门 这就是我到目前为止所拥有的,我需要它来展示一切,我的同事试图帮助我,但不得不离开,所以我请求你们Python 如果列的值为零值,如何从SQL查询中获取值?,python,sqlite,Python,Sqlite,基本上我有一个训练数据集,但我希望它显示为零,而不是根本不显示 下面的节目都是不完整和完整的,但我希望它显示不完整,并且来自于零不完整为0的部门 这就是我到目前为止所拥有的,我需要它来展示一切,我的同事试图帮助我,但不得不离开,所以我请求你们 Select distinct Department, Total FROM ( Select Department, Total FROM ( SELECT 'Incomplete' AS Status, department, count(*) as
Select distinct Department, Total FROM
(
Select Department, Total FROM
(
SELECT 'Incomplete' AS Status, department, count(*) as Total
FROM MyTable
WHERE CompletedTraining = 'Incomplete'
GROUP BY department
union all
Select 'Complete' AS Status, department, Count(*) as Total
FROM MyTable
WHERE CompletedTraining = ' Complete'
Group By Department
)
WHERE Status = 'Incomplete'
)
union all
SELECT DISTINCT Department, NULL AS Total
FROM MyTable
当我运行python脚本时,我得到了这个
Incomplete Training
[6, 8, 2, 3, 6, 4, 4, 5, 2, 4]
但是如果有人接受了我的训练,我希望在名单上显示为零
所以我的预期输出是这样的
Incomplete Training
[6, 8, 2, 3, 6, 4, 4, 5, 2, 4, 0, 0]
示例文档X 1500行,包含多个用户
Curriculum Name Department Employee Name Employee Email Employee Status Date Assigned Completion Date CompletedTraining
Security Training OIS John Doe john.doe@email.org Active 7/18/2017 21:47 8/2/2017 21:31 Complete
Support Training OIS Home Simpson home.simpson@email.gov Active 4/20/2017 15:33 5/3/2017 22:18 Complete
Security Training ASD bart simpson bart.simpson@email.gove Active 5/5/2017 20:22 11/30/2017 19:43 incomplete
Security Training CO jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training ECARS jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training EO jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training ISD jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training MSCD jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training RD jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training TTD jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training DP jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training MLD jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training OIS jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training TTD jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training TTD jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
Security Training AQPSD jack johnson jack.johnson@email.gov Active 5/9/2017 21:15 5/10/2017 20:23 incomplete
这会让你得到不完整的 在同一行上获得不完整和完成
select distinct
Department
, (select count(*) from MyTable t2 where t2.Department = t1.Department and t2.CompletedTraining='Incomplete') as TotalIncomplete
, (select count(*) from MyTable t2 where t2.Department = t1.Department and t2.CompletedTraining='Complete') as TotalComplete
from MyTable t1
或者类似的
select distinct 'Incomplete' as Src
, Department
, (select count(*) from MyTable t2 where t2.Department = t1.Department and t2.CompletedTraining='Incomplete') as Total
from MyTable t1
union
select distinct 'Complete' as Src
, Department
, (select count(*) from MyTable t2 where t2.Department = t1.Department and t2.CompletedTraining='Completeomplete') as Total
from MyTable t1
这会让你得到不完整的 在同一行上获得不完整和完成
select distinct
Department
, (select count(*) from MyTable t2 where t2.Department = t1.Department and t2.CompletedTraining='Incomplete') as TotalIncomplete
, (select count(*) from MyTable t2 where t2.Department = t1.Department and t2.CompletedTraining='Complete') as TotalComplete
from MyTable t1
或者类似的
select distinct 'Incomplete' as Src
, Department
, (select count(*) from MyTable t2 where t2.Department = t1.Department and t2.CompletedTraining='Incomplete') as Total
from MyTable t1
union
select distinct 'Complete' as Src
, Department
, (select count(*) from MyTable t2 where t2.Department = t1.Department and t2.CompletedTraining='Completeomplete') as Total
from MyTable t1
你能给出示例表吗?更新后,基本上我需要我的查询来输出所有部门,总共有13个部门。从这4行的示例数据中,你会期望OIS 0、ASD 1、TTD1?我总共有13个部门,我应该在示例中编辑吗?检查我的答案是否有不完整之处。我不确定它需要所有的工会。我会注意的。你能给出样本表吗。更新后,基本上我需要我的查询来输出所有部门,总共有13个部门。从这4行的样本数据中,你会期望OIS 0,ASD 1,TTD1?我总共有13个部门,我应该在示例中编辑吗?检查我的答案是否有不完整之处。我不确定它需要所有的工会。我会留意的。如果可能的话,我不想依赖部门名称,我会试试这个很棒的,我想我也可以用它来完成训练,只需更改completedtraining='complete'?那么completedtraining呢?我试着将“不完整”改为“完整”,但没有成功…更新了答案,gl.Hmm…,对“完整”没有任何结果我不想依赖部门名称,如果可能的话,我会试试这个很棒的,我想我也可以用它来完成训练,只需更改completedtraining='complete'?那么completedtraining呢?我试着将“不完整”改为“完整”,但它不起作用…更新了答案,gl.Hmm…,它没有为“完整”生成任何结果