mysql - 为每个值选择 COUNT

标签 mysql html-table

我的表格是这样的:

id    type    value
1    type1    Good
2    type1    Bad
3    type1    Match
4    type2    Good
5    type2    Bad
6    type2    Match
7    type3    Good
8    type3    Bad
9    type3    Match

每个“类型”有 3 个可能的值选项

目前我使用这段代码来预览数据

$result = mysql_query("SELECT type, value, COUNT(*) FROM data GROUP BY type,value ORDER BY COUNT(*) DESC"); 
echo "<table border='1'>";
while($row = mysql_fetch_array( $result )) {
echo "<tr>";
echo '<td><FONT SIZE=3 COLOR=BLACK> ' . $row['type'] .  '  </FONT></td>';
echo '<td><FONT SIZE=3 COLOR=BLACK> ' . $row['value'] .  '  </FONT></td>';
echo '<td><FONT SIZE=4 COLOR=GREEN> ' .$row['COUNT(*)'] . '</FONT></td>';}  
echo "<tr>";  
echo "</table>";

因此,表格的结果显示在 3 列多行 (3*3*3)

我试图将它显示在一个有 4 列只有 3 行的表格中 像这样:

type    COUNT "Good"    COUNT "Bad" COUNT "Match"
type1       1               1             1
type2       1               1             1
type3       1               1             1

我不知道该怎么做。

知道怎么做吗?

最佳答案

您可以(ab)使用 SUMCASE 的组合来执行此操作:

SELECT type,
       SUM(CASE WHEN type='Good' THEN 1 ELSE 0 END) AS good,
       SUM(CASE WHEN type='Bad' THEN 1 ELSE 0 END) AS bad,
       SUM(CASE WHEN type='Match' THEN 1 ELSE 0 END) AS match
  FROM data
  GROUP BY type

这将根据类型对所有值进行分组,然后使用 SUM 找出每个值的数量。通过使用 CASE,我们对每一行求和为 0 或 1,因此它只会加到一个“计数”。

关于mysql - 为每个值选择 COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41869636/

相关文章:

php - 文本框自动填充 mysql 数据,但不填充文本区域

Windows Server 中的 MySql 主从复制

mysql - 实体 ID/实体类型术语/模式?

javascript - 有什么方法可以将 html 表导出到在所有浏览器中工作的 Excel 中吗?

jQuery点击表格单元格事件

mysql - 在 REPLACE 上增加字段值

php - 全文搜索方法不起作用

java - selenium - 搜索表格特定行中​​的文本

javascript - 带输入、按钮和图片的 Javascript 动态表

html 表格 - 按行或列