首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MySQL中合并计数行

在MySQL中合并计数行
EN

Stack Overflow用户
提问于 2010-06-26 07:00:40
回答 2查看 205关注 0票数 0

我在MySQL中有一个表,大致如下所示:

代码语言:javascript
运行
复制
value | count
-------------
Fred  | 7
FRED  | 1
Roger | 3
roger | 1

也就是说,它是使用MySQL之外的字符串操作创建的,因此值区分大小写和尾随空格。

我希望它看起来像这样:

代码语言:javascript
运行
复制
value | count
-------------
Fred  | 8
Roger | 4

也就是说,以value为主键,由MySQL管理。保留哪个( "Fred“或"FRED")并不重要。

我知道如何在代码中做到这一点。我还知道如何生成问题值列表(使用自连接)。但是我想想出一个SQL update/delete来迁移表,但是我想不出任何东西。

如果我知道没有一对记录具有相同计数的变量(如("Fred",4)和("FRED",4)),那么我想我可以使用自连接来复制计数,然后通过更新来删除零。但我没有这样的保证。

我是否遗漏了一些简单的东西,或者这是您在数据库之外编写一个简短函数的情况之一?

谢谢!

EN

Stack Overflow用户

回答已采纳

发布于 2010-06-26 07:15:22

奇怪的是,MySQL似乎为您做了这件事。我刚刚在MySQL 5.1.47中进行了测试:

代码语言:javascript
运行
复制
create table c (value varchar(10), count int);
insert into c values ('Fred',7), ('FRED',1), ('Roger',3), ('roger',1);

select * from c;

+-------+-------+
| value | count |
+-------+-------+
| Fred  |     7 |
| FRED  |     1 |
| Roger |     3 |
| roger |     1 |
+-------+-------+

select value, sum(count) from c group by value;

+-------+------------+
| value | sum(count) |
+-------+------------+
| Fred  |          8 |
| Roger |          4 |
+-------+------------+

我很惊讶看到MySQL这样转换字符串,我不确定我能解释为什么它这样做。我希望得到四个不同的行,并且必须使用一些字符串函数将值映射到规范形式。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3121973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档