2016-05-09 65 views
0

說我有如下表:SQLite的 - 由多個列組,計算不同的一個

Commit File Past_Author 
1  a  Alice 
1  a  Bob 
1  a  Bob 
1  b  Alice 

我期待數不同的作者對每一個文件,以提交總結的數量。在這種情況下,我希望3個作者提交1(文件a爲2,文件b爲1)。

我想是這樣的:SELECT Commit, SUM(NUM_AUTHORS) FROM (SELECT Commit, File, COUNT(DISTINT Past_Author) as NA FROM COMMITS GROUP BY File) GROUP BY Commit

+0

子查詢中的「group by」錯誤。你必須'GROUP BY'文件並提交。 – CapturedTree

回答

0

這應該做的伎倆。

SELECT Commit, SUM(NUM_AUTHORS) FROM 
(
    SELECT 
     Commit, 
     File, 
     COUNT(DISTINCT Past_Author) AS NUM_AUTHORS 
    FROM COMMITS 
    GROUP BY Commit, File 
) AS AUTHOR_COUNT 
GROUP BY Commit; 
+1

對於提交1,這不會返回「2」的計數嗎?我希望它返回一個「3」的計數,即每個文件都有不同的作者,但不是每個提交。 –

+0

是的你是對的我修正了查詢,它也有一個錯字,這個新的工作正常,我還必須注意,「提交」列可能會給你帶來麻煩,因爲「COMMIT」是一個SQLite關鍵字。 – ArturoAP

+0

@MikeChong有用嗎? – ArturoAP

相關問題