作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在某个系统中执行分析。系统应该通过从数据库中查询两个或多个表来进行分析,然后按字段分组显示总结果。
这是一个基于 Java 的系统,使用 SQL 作为数据库。我尝试过使用 UNION、UNION ALL 但它没有给出令人满意的结果。
下面是表1
id itemID ItemName entryTime
1 GAR001 PhoneAG ""
2 GAR004 PCLG ""
3 GAR009 ELECT ""
...
下面是表2
id itemID ItemName entryTime issuedate
1 GAR001 PhoneAG "" ""
2 GAR001 PhoneAG "" ""
3 GAR009 ELECT "" ""
...
我尝试过使用以下内容
public ObservableList<PieChart.Data> getItemAnalysis(){
ObservableList<PieChart.Data> data = FXCollections.observableArrayList();
String st1 = "SELECT itemID, COUNT(itemID) FROM table1 GROUP BY itemID UNION ALL SELECT itemID, COUNT(itemID) FROM table2 GROUP BY itemID";
System.out.println(st1);
ResultSet rs = execQuery(st1);
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;
}
返回结果时。它返回
GAR001(1),
GAR004(1),
GAR009(1),
GAR001(2),
GAR009(1).
我期望结果返回为
GAR001(3)
GAR004(1)
GAR009(2)
最佳答案
您正在两个分组查询之间应用union all
。相反,您应该联合所有
原始数据,然后对其进行分组:
SELECT itemID, COUNT(*)
FROM (SELECT itemID
FROM table1
UNION ALL
SELECT itemID
FROM table2) t
GROUP BY itemID
关于java - 如何在JAVA中查询具有相似数据的两个表并按表字段对结果进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55578492/
我是一名优秀的程序员,十分优秀!