我有一個查詢與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 ";
我有一個查詢與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 ";
像這樣做,如果你想從結果中排除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' ";
好運
我不認爲這是正確的。 –
我不認爲這是OP之後的事情。他不想排除field3是「好」的記錄 - 而是不將這些記錄分組。 –
抱歉不理解。我編輯我的答案,我是這樣做的。 –
試試這個:
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
聲明追加'好'的結局。
有了這個解決方案,我可以在'UNION附近獲得'sintax錯誤' – user2895164
@ user2895164我現在沒有機器來測試查詢,所以你必須有一點點擺弄它。儘管如此,你仍然需要使用'union'。我稍微改了一下我的答案,也許這個改變解決了你的問題,但是再一次,我無法真正地測試它。 – AxiomaticNexus
修復了語法。 (我仍然認爲查詢沒有意義...) –
我不明白這個問題。請提供您的數據樣本和預期的輸出。 –
@AleksG:聽起來像是一個CASE。不過,我不確定是否可以有條件的分組。 –
@RobertHarvey是的,聽起來像CASE,但我寧願OP提供樣本數據和預期輸出 - 更容易理解:) –