gpt4 book ai didi

mysql - 如何根据另一列或不同组对一列中的值求和?

转载 作者:行者123 更新时间:2023-11-29 12:23:18 25 4
gpt4 key购买 nike

例如,我有一个table1:

+---------------------+---------------+---------------+---------------+
| StartTime | dIPaddr | countNum | rowid |
+---------------------+---------------+---------------+---------------+
| 2014-04-09 09:47:53 | 0.210.208.240 | 2 | 1 |
| 2014-04-09 09:47:54 | 0.210.208.240 | 0 | 2 |
| 2014-04-09 09:47:55 | 0.210.208.240 | 1 | 3 |
| 2014-04-09 08:39:55 | 0.210.243.93 | 1 | 1 |
| 2014-04-09 08:39:56 | 0.210.243.93 | 0 | 2 |
| 2014-04-09 08:39:57 | 0.210.243.93 | 1 | 3 |
| 2014-04-09 13:02:25 | 0.210.25.224 | 3 | 1 |
| 2014-04-09 13:02:26 | 0.210.25.224 | 0 | 2 |
| 2014-04-09 13:02:27 | 0.210.25.224 | 1 | 3 |
+---------------------+---------------+---------------+---------------+

rowid是基于不同的dIPaddr的,在每个dIPaddr组中,都有按StartTime排序的rowid。我使用此命令为它们添加 rowid:

ALTER TABLE table1
ADD COLUMN rowId int not null auto_increment,
ADD PRIMARY KEY(dIPaddr, rowId),
ENGINE=MyISAM;

我想将每个 dIPaddr 的第一个 countNum 相加,将每个 dIPaddr 的第二个 countNum 相加,将每个 dIPaddr 的第三个 countNum 相加。如果使用伪代码,它应该看起来像:

dIPaddr(0.210.208.240).rowid(1).countNum+dIPaddr(0.210.243.93).rowid(1).countNum+dIPaddr(0.210.25.224).rowid(1).countNum

dIPaddr(0.210.208.240).rowid(2).countNum+dIPaddr(0.210.243.93).rowid(2).countNum+dIPaddr(0.210.25.224).rowid(2).countNum

dIPaddr(0.210.208.240).rowid(3).countNum+dIPaddr(0.210.243.93).rowid(3).countNum+dIPaddr(0.210.25.224).rowid(3).countNum

最终的表格应该是这样的:

+-------+
| count |
+-------+
| 6 |
| 0 |
| 3 |
+-------+

我是一个使用数据库的新学生,很抱歉我的简单问题。感谢大家的帮助!顺便说一句,上面只是我真实数据库的一个简单示例,实际上,每个 dIPaddr 的 rowid 都有超过 100 条记录。所以我不能只使用极限 3 来进行一些简单的计算。

最佳答案

试试这个:

SELECT SUM(countNum) as Total FROM tbl_name GROUP BY rowid

关于mysql - 如何根据另一列或不同组对一列中的值求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28712917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com