在(使用mysql)表中,我的一个列(即颜色)就像:
|Color|
======
|Red |
|Blue |
|Green|
|Red |
|Green|
|Green|
|Red |
|Red |
在我当前的jsp页面中建立jdbc连接之后:我试图在饼图中显示该值(它在jscript中是wriien,我将从mysql中获取值),如:
|Color|no. of Times|
====================
|Red | 4 |
|Blue | 1 |
|Green| 3 |
购买我无法将值放入图表中(我猜代码中存在问题):
<%
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/apps","root","root");
Statement stmt = con.createStatement();
String sql2="select distinct(color) as COLOR from user_management order by device;";
ResultSet rs2 = stmt.executeQuery(sql2);
String s = rs2.getString("color");
while(rs2.next()){
String device = rs2.getString("color");
List<String> list=new ArrayList<String>();
list.add(device);
}
// I guess here will be some code for device value in String, say "s"
String sql1 = "select count(case when color='"+s+"' then 1 end) as COLOR from user_management";
ResultSet rs1 = stmt.executeQuery(sql1);
System.out.println(sql1);
%>
然后将结果集放在饼图表
中<table id="chartData">
<% while(rs2.next()){ %>
<% while(rs1.next()){ %>
<tr>
<th>DEVICE</th><th>NUMBER</th>
</tr>
<tr style="color: #0DA068">
<td><%= rs2.getString("device")%></td><td><%= rs1.getString(1)%></td>
</tr>
<% }
%>
<% }
%>
</table>
任何输入如何获取图表中的列值,其中color-name和no。颜色同时发生。
答案 0 :(得分:1)
使用GROUP BY
:
SELECT Color, count(*) AS times FROM colors GROUP BY Color;