3 回答

TA貢獻(xiàn)1877條經(jīng)驗 獲得超1個贊
您正在兩個分組查詢之間應(yīng)用 。相反,您應(yīng)該使用原始數(shù)據(jù),然后對其進(jìn)行分組:union allunion all
SELECT itemID, COUNT(*)
FROM (SELECT itemID
FROM table1
UNION ALL
SELECT itemID
FROM table2) t
GROUP BY itemID

TA貢獻(xiàn)1946條經(jīng)驗 獲得超4個贊
您實際上需要編輯SQL語句,這就是您獲得這些結(jié)果的原因。@Mureinik發(fā)布了正確的 SQL。我繼續(xù)將其插入到您的代碼中,以便為您提供一個應(yīng)該有效的解決方案。
public ObservableList<PieChart.Data> getItemAnalysis(){
ObservableList<PieChart.Data> data = FXCollections.observableArrayList();
sql = "SELECT itemID, COUNT(*) FROM (SELECT itemID FROM table1 UNION ALL SELECT itemID FROM table2) t GROUP BY itemID"
System.out.println(sql);
ResultSet rs = execQuery(sql);
try{
if(rs.next()){
String itemId = rs.getString("itemID");
int count = rs.getInt(2);
data.add(new PieChart.Data(itemId + "(" + count + ")", count));
}
} catch (SQLException ex) {
Logger.getLogger(DatabaseHandler.class.getName()).log(Level.SEVERE, null, ex);
}
return data;
}

TA貢獻(xiàn)1921條經(jīng)驗 獲得超9個贊
您應(yīng)該使用子查詢
SELECT DISTINCT itemID , COUNT(*) AS COUNT
FROM (SELECT itemID
FROM table1
UNION ALL
SELECT itemID
FROM table2) as T
GROUP BY itemID;
添加回答
舉報