如何在MariaDB中基于另一张表的分类计数结果创建新表
实现方案
你可以用CASE WHEN语句做自定义分类,搭配COUNT聚合函数实现统计,需要直接生成Table2的话使用CREATE TABLE ... AS SELECT语法即可。
完整SQL语句
CREATE TABLE Table2 AS SELECT CASE WHEN Col2 IN ('Done', 'Done with errors', 'Finished') THEN 'Finished' WHEN Col2 IN ('Fail', 'Failed with many errors') THEN 'Failed' WHEN Col2 IN ('Waiting', 'Not tested yet') THEN 'Waiting to be finished' END AS Col1, COUNT(*) AS Col2 FROM Table1 GROUP BY Col1;
补充说明
- 如果Col2存在上述列举值之外的内容,上述语句会把这类记录对应的Col1设为NULL,如果你需要处理额外值,可以在CASE结构末尾加
ELSE '自定义兜底分类名'即可 - 如果你只需要查询统计结果不需要生成物理表Table2,去掉开头的
CREATE TABLE Table2 AS就能直接返回统计结果
内容的提问来源于stack exchange,提问作者user14073111
相关产品推荐
相关产品推荐

