Mysql 反复浏览一列并总结结果
我在mySQL中有一个表(t1),它生成以下表:Mysql 反复浏览一列并总结结果,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
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
我希望能够遍历type列,以便能够开始这个摘要,类似于for循环。这些类型最多可以有n个值,因此我不希望编写n+1WHERE
语句,然后每次添加更多类型时都必须更新代码
注意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;
这取决于您希望聚合时间列的方式
这是分组功能的参考起点:这里是创建语法的地方
注意:如果“full”列不是bool(TinyInt),则可以在SUM函数中使用case语句,例如,如果“full”是字符串“yes”/“no”值,则可以使用SUM(当full='yes'时,case为0 END)SUM(当full='yes'时,case为1,否则为0 END)