2016-11-16 52 views
2

Select語句我有一個SQL語句來選擇數據:具有計數和不

SELECT DISTINCT count(table.data) as cntd, table.datatwo 
FROM table LEFT JOIN tabletwo ON table.id=tabletwo.tableid 
WHERE tabletwo.dated='2016-11-17' AND table.datafive='1' 

如果我把它的方式上面 - 它返回的數據如下:

cntd datatwo 
4 92 

然而正確的數據應該是:

cntd datatwo 
2 92 
2 93 

由於有兩個不同的datatwo。當我選擇沒有繼續的語句時 - 它顯示datatwo

datatwo 
92 
93 

我在哪裏犯了一個錯誤?

+1

我希望這些不是真正的表名和列名! –

+1

@Crozet爲什麼會這麼想?這是有效的。你在談論'table'這個詞嗎?我可以看到'FROM表'失敗,如果它是,但不是其他人,但我懷疑這是他們真正使用。可能只有代表性。 –

+0

@ Fred-ii-我說的是非描述性的表格和列名 –

回答

5

儘管如何隨機和不直觀的表格命名是,它似乎你想要的是使用GROUP BY聲明:

SELECT 
    DISTINCT count(table.data) as cntd, 
    table.datatwo 
FROM table 
LEFT JOIN tabletwo ON table.id=tabletwo.tableid 
WHERE tabletwo.dated='2016-11-17' 
    AND table.datafive='1' 
GROUP BY tabletwo.tableid 

COUNT語句是功能,因此它會導致行坍塌下來到一個。按每行的唯一值進行分組會導致它按照組進行聚合。

+1

謝謝。這正是我所錯過的(但非常明顯)。表格的命名不是表格中的內容 - 它的語言不是英語 - 所以爲了這個問題,我使用了其他一些名稱。但請記住下次嘗試使用更好的示例。 –