2017-12-29 42 views
0

私は情報を取得するために必要なので、私の望むように動作するSQLクエリを持っていますが、私の部門の列は不要です1つの列だけをプルするには両方の列の情報が必要です

qry = """ 
select distinct 
    Department 
    , (select count(*) from MyTable t2 where t2.Department = t1.Department and t2.CompletedTraining='Incomplete') as Total 
from MyTable t1 ORDER BY Department ASC 

df = pd.read_sql_query(qry, con) 
print("Incomplete Training") 
print(df) 

電流出力:

Incomplete Training 
    Department Total 
0  AQPSD  6 
1   ASD  8 
2   CO  2 
3  ECARS  3 
4   ED  6 
5   EO  4 
6   ISD  4 
7   MLD  0 
8  MSCD  5 
9   OIS  0 
10   RD  2 
11  TTD  4 

私だけ置い合計列を入れて、それでも同じデータを持っているので、出力は

だろうに私のクエリをしたいと思います一般に
Incomplete 
    Training 
0   6 
1   8 
2   2 
3   3 
4   6 
5   4 
6   4 
7   0 
8   5 
9   0 
10  2 
11  4 

答えて

1

、あなたはその周りに別のクエリをラップすることにより、列を削除することができます

SELECT Total 
FROM (SELECT ...original query...); 

しかし、あなたは、GROUP BYとDISTINCT置き換える場合は、この場合には、あなたは、元の列を必要としません(サブクエリは、SQLiteでブール式が0または1になるという事実を使用して簡略化できます)。

SELECT sum(CompletedTraining = 'Incomplete') AS Total 
FROM MyTable AS t1 
GROUP BY Department 
ORDER BY Department ASC; 
関連する問題