mysql - 迭代列并总结结果

标签 mysql

我在 mySQL 中有一个表 (t1),它生成下表:

type    time    full
0       11      yes
1       22      yes
0       11      no
3       13      no

我想由此创建第二个表 (t2),它将总结 t1 中找到的信息,如下所示:

type    time    num_full   total
0       11      1          2
1       22      1          1
3       13      0          1

我希望能够迭代类型列,以便能够启动此摘要,类似于 for 循环。类型的值最多可达 n,因此我宁愿不编写 n+1 WHERE 语句,然后每次添加更多类型时都必须更新代码。

请注意 t2 如何跳过值 2 的类型?当我尝试循环时,我也没有意识到这一点。我只希望找到在 t2 中创建行的类型。

虽然直接回答会很好,但指出一些我可以解决这个问题的来源,或两者兼而有之,会更有帮助。

最佳答案

这可能会达到你想要的效果

create table t2 if not exists select type, time, sum(full) num_full, count(*) count
from t1 
group by type,time
order by type,time;

取决于您想要如何聚合时间列。

这是按函数分组的引用起点:https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
这里用于创建语法 https://dev.mysql.com/doc/refman/5.6/en/create-table.html

关于mysql - 迭代列并总结结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31119620/

相关文章:

mysql - MariaDB MySQL 优化

mysql - 查询整个mysql数据库

mysql - MYSQL 重复键更新多个值

mysql - SQL唯一varchar区分大小写问题

MySQL 可以使用 LIMIT 返回 n 行,然后还返回值与第 n 行匹配的任何其他行吗?

mysql - 从mysql中逗号分隔的列中搜索多个值

php - 如何从数据库中回显 html 和 row

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

php - 使用 REST 直接通过 id 来识别 mysql 条目是个好主意吗?

用一个命令从 mysqldump 导入 MySQL?