获取独特的价值而没有。时代的价值

时间:2012-08-16 10:26:27

标签: jsp servlets jdbc

在(使用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。颜色同时发生。

1 个答案:

答案 0 :(得分:1)

使用GROUP BY

SELECT Color, count(*) AS times FROM colors GROUP BY Color;