mysql - MySQL 根据条件计数和求和
问题描述
有没有办法计算每个 PN 的 SN 并根据条件(在以下情况下为 Loc)求和?
create table table1 (
code int(10) primary key,
PN varchar(10) not null,
SN varchar(10) not null,
Loc varchar(10));
insert into table1 values (1,'T1','a1','a');
insert into table1 values (2,'T1','a2','a');
insert into table1 values (3,'T1','a3','a');
insert into table1 values (4,'T1','a4','b');
insert into table1 values (5,'T1','a5','b');
insert into table1 values (6,'T1','a6','b');
insert into table1 values (7,'T2','a1','a');
insert into table1 values (8,'T2','a2','a');
insert into table1 values (9,'T2','a3','a');
insert into table1 values (10,'T2','a4','b');
insert into table1 values (11,'T2','a5','b');
insert into table1 values (12,'T2','a6','b');
insert into table1 values (13,'T2','a7','b');
我试图达到的结果是:
PN a b
T1 3 3
T2 3 4
解决方案
这只是条件聚合:
select pn, sum(loc = 'a') as a, sum(loc = 'b') as b
from table1
group by pn;
如果您有一个未知的loc
值列表,那么您可能需要一个动态查询。谷歌“MySQL 动态支点”。
推荐阅读
- reactjs - http://localhost:3000/ 一直加载
- docker - 用于两个并行 docker 构建的 Bitbucket docker 图像缓存
- facebook - 如何在营销 api 中过滤具有特定目标的 facebook adaccount 活动?
- mlflow - MLflow 存储标签但不返回它们
- flutter - Flutter 设备预览和 Firebase 身份验证不兼容
- html - Bootstrap/css nof 在 IE 和 ED 上找到/工作
- php - 将 body_class 作为变量传递给 Gravity 表单隐藏字段
- java - 从这个三元运算符中选择什么作为这个 setter 的值?
- php - PHP 会话变量更改
- spring-boot - 控制器测试不提供任何请求路径来过滤