2014-03-12 60 views
0

我有一個查詢與ORDER BY子句,它運作良好,但現在我想,如果field3等於字符串good,這個字符串不應該分組。我希望我解釋一下。有條件的分組在SQLite查詢

String sql = "SELECT field1, field2, field3, field4, field5, COUNT (field3) 
FROM Table 
WHERE field2 = '"+numero+"' 
GROUP BY field3 ORDER BY field1 ASC "; 
+1

我不明白這個問題。請提供您的數據樣本和預期的輸出。 –

+0

@AleksG:聽起來像是一個CASE。不過,我不確定是否可以有條件的分組。 –

+0

@RobertHarvey是的,聽起來像CASE,但我寧願OP提供樣本數據和預期輸出 - 更容易理解:) –

回答

-1

像這樣做,如果你想從結果中排除filed3

String sql = "SELECT * FROM (SELECT field1, field2, field3, field4, field5, COUNT (field3) 
FROM Table 
WHERE field2 = '"+numero+"' 
GROUP BY field3 ORDER BY field1 ASC) WHERE feild3 != 'good' "; 

好運

+0

我不認爲這是正確的。 –

+0

我不認爲這是OP之後的事情。他不想排除field3是「好」的記錄 - 而是不將這些記錄分組。 –

+1

抱歉不理解。我編輯我的答案,我是這樣做的。 –

1

試試這個:

SELECT field1, field2, field3, field4, field5, COUNT (field3) 
FROM MyTable 
WHERE field2 = '5' AND field3 <> 'good' 
GROUP BY field3 

UNION ALL 

SELECT field1, field2, field3, field4, field5, field3 
FROM MyTable 
WHERE field2 = '5' AND field3 = 'good' 

ORDER BY field1 

它使用union聲明追加'好'的結局。

+0

有了這個解決方案,我可以在'UNION附近獲得'sintax錯誤' – user2895164

+0

@ user2895164我現在沒有機器來測試查詢,所以你必須有一點點擺弄它。儘管如此,你仍然需要使用'union'。我稍微改了一下我的答案,也許這個改變解決了你的問題,但是再一次,我無法真正地測試它。 – AxiomaticNexus

+0

修復了語法。 (我仍然認爲查詢沒有意義...) –