我在 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/