2017-08-09 19 views
1

執行組由DB查詢我有類似下面一個數據庫查詢,它工作正常,當我在mysql中執行此,但它在JUnit與錯誤而失敗「未合計或GROUP BY列的表情:」。我的JUnit在內存中使用HSQL DB。我已經通過了Strange behavior of HSQLDB and group by,並明白我們需要在查詢中使用聚合方法時爲所有字段分組。在JUnit

但是我有一個要求,我需要得到基於與只有一列編組(這是不是主鍵)的全部價值,可以請你建議我怎麼能在JUnit中實現這一目標。

查詢這我執行: Select *, count(sampleField) from TestTable where sampleField2 != null group by sampleField

+0

要小心...你是如何連接到數據庫?因爲通過JNDI憑證將無法通過JUnit的是accessable ...測試都需要它自己的硬編碼的憑據。 *從經驗* –

+0

談到與GROUP BY只能使用分組列和聚合在選擇列表的。不知道如何在MySQL中工作,除了只有一列的表格。 – aschoerk

+0

沒有什麼奇怪的,它只是無效的SQL。看來你試圖用一些僞SQL來推論你的問題。請張貼在MySQL的工作,與您正在試圖在HQL執行完整的查詢沿着完整的查詢。 – slambeth

回答

1

您可以使用分鐘(列)或最大(列)爲其它列。

例如,如果你已經列名爲firstnamelastname

Select min(firstname), min(lastname), count(sampleField) from TestTable where sampleField2 != null group by sampleField