mysql - 如何根据条件删除重复项?
解决方案
我分享两个解决方案。
- 第一个使用分组的解决方案。
create table t (
group_ int,
semi_group VARCHAR(30),
total int,
semi_total int
);
INSERT INTO
t(group_, semi_group, total, semi_total)
VALUES
(10,'A',56, null),
(10,'A',null, 34),
(11,'G',34, null),
(12,'H',23, null),
(13,'J',12, null),
(13,'J',null, 55);
select
group_,
semi_group,
sum(total) total, sum(semi_total)
from t
group by group_, semi_group;
- 使用条件,例如,如果您希望总计为空且半总计不为空,则使用半总计值,如果逆使用总计。
select
group_,
semi_group,
case when sum(total) is null and sum(semi_total) is null then
0
when sum(total) is null and sum(semi_total) is not null then
sum(semi_total)
else
sum(total)
end total
from t
group by group_, semi_group;
结果是这样的。
团体_ | 半组 | 全部的 |
---|---|---|
10 | 一个 | 56 |
11 | G | 34 |
12 | H | 23 |
13 | Ĵ | 12 |
推荐阅读
- java - 子类中的 Java 静态构造函数访问
- javascript - 是否可以停止来自接收它的客户端的服务器响应
- plot - gnuplot 中的插值伪影
- regex - 如何在perl中对数组应用负正则表达式?
- javascript - 如何从 node.js 脚本文件执行 package.json 脚本?
- javascript - 没有 Node.js 的 HTML 表单数据到本地 JSON 文件
- sql - 将附加数据与查询一起发送到 SQL?
- python - 使用 ORB 未检测到关键点
- arrays - xcode swift没有重新填充数组
- firebase - Flutter Firebase 动画列表流