【问题标题】:Sql query to draw a grouped bar chart with Jpgraph用Jpgraph绘制分组条形图的sql查询
【发布时间】:2013-12-01 02:20:45
【问题描述】:

使用Jpgraph通过取Sql表值绘制分组条形图。这是我应该从中绘制图表的表格。 (并非所有数据都显示)

 ----------------------------------------
 |               student                |
 ----------------------------------------
 | user_ID                |  category   |
 ----------------------------------------
 |   MPhil/FT/2011/021    |  Full Time  |
 |   MPhil/PT/2013/011    |  Part Time  |
 |   MPhil/PT/2012/015    |  Part Time  |
 |   MPhil/FT/2012/024    |  Full Time  |
 |   MPhil/FT/2013/026    |  Full Time  |
 |   MPhil/PT/2011/030    |  Part Time  |
 ----------------------------------------

从中绘制分组条形图,其中 x 轴在 user_ID 中显示 2011 年、2012 年、2013 年等,类别类型为“全职”或“兼职”。例如,对于年份为 2011 年的用户 ID 的数量,应分别为“全职”计数和“兼职”计数绘制两个条形。然后是 2012 年等。 如何为此编写 SQL 查询?我可以使用“LIKE”来获得年份吗? 以 Full time 和 Part Time 计算来绘制一个简单的条形图,SQL 查询是;

"SELECT count(*) AS num_rows, category FROM student WHERE category ='Full Time' or category= 'Part Time' GROUP BY category"

如何更改此查询以绘制如上所述的分组条形图?如何获取 user_ID 和 Full Time 中的年份,Part time 按年份计算? (还有更多的年份,不止2011,2012,2013)

【问题讨论】:

    标签: php sql group-by bar-chart jpgraph


    【解决方案1】:

    找到了解决办法。写了两个查询没有。每年与全日制相关的学生人数和每年与非全日制相关的学生人数。

    $sql = mysql_query("SELECT count(*) AS num_rows,LEFT(Right(user_ID,8),4) FROM student WHERE category ='Full Time' GROUP BY LEFT(Right(user_ID,8),4)") or die(mysql_error());
    while($row = mysql_fetch_array($sql))
    {
    $data1[] = $row['num_rows'];
    $leg[] = $row['LEFT(Right(user_ID,8),4)'];
    }
    
    $sql2 = mysql_query("SELECT count(*) AS num_rows,LEFT(Right(user_ID,8),4) FROM student WHERE category ='Part Time' GROUP BY LEFT(Right(user_ID,8),4)") or die(mysql_error());
    while($row2 = mysql_fetch_array($sql2))
    {
    $data2[] = $row2['num_rows'];
    $leg[] = $row2['LEFT(Right(user_ID,8),4)'];
    }
    

    所以这里是分组条形图的一半代码

    $bplot1 = new BarPlot($data1);
    $bplot1->SetFillColor("red"); 
    $bplot2 = new BarPlot($data2);
    $bplot2->SetFillColor("blue"); 
    

    【讨论】:

      猜你喜欢
      • 2018-01-06
      • 2021-11-25
      • 1970-01-01
      • 2011-10-17
      • 2012-10-23
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      相关资源
      最近更新 更多