如何获得 f3 的总和但按 f2 分组

发布于 2024-11-08 13:42:40 字数 342 浏览 0 评论 0原文

我想获取按类别分组的所有评论计数。例如,

f1      f2      f3
php     hello   34
php     hello   34
php     hello   34
php     world   23
php     world   23
php     world   23
asp     world1   43
asp     world1  43
asp     world1   43

如何获得 f3 的总和但按 f2 分组?

所以不是 34 + 34 + 34 +23 ...而是 34 + 23 + 43

编辑:f2 是唯一的

I want to get all comments count grouped by category. eg

f1      f2      f3
php     hello   34
php     hello   34
php     hello   34
php     world   23
php     world   23
php     world   23
asp     world1   43
asp     world1  43
asp     world1   43

How to get sum of f3 but grouped by f2?

So not 34 + 34 + 34 +23 ... but 34 + 23 + 43

EDIT: f2 is unique

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

骄傲 2024-11-15 13:42:40
SELECT SUM(f3) FROM `tablename` GROUP BY f2, f3
SELECT SUM(f3) FROM `tablename` GROUP BY f2, f3
咆哮 2024-11-15 13:42:40

好吧,我想了一遍......基本上,如果我理解正确,你想要每个不同集合的总和。

所以不是 34 + 34 + 34 + 23 + 23 + 23 + 43 + 43 + 43 ...而是 34 + 23 + 43

为了做到这一点,你需要使用以下查询来欺骗 MySQL:

SELECT 
SUM(tot.invalid_votes) AS total
FROM (SELECT DISTINCT QV, invalid_votes FROM `results`) tot

这将返回 < 的 SUM em>基于 QV 字段的不同值。

表:

QV  invalid_votes
0544    5
0544    5
0544    5
0545    6
0545    6

根据您提供的数据库信息,我得到以下结果11

Okay I thought it all over.. and basically if i do understand correct you want the sum for each distinct set.

So not 34 + 34 + 34 + 23 + 23 + 23 + 43 + 43 + 43 ... BUT 34 + 23 + 43

In order to that you need to trick MySQL with the following query :

SELECT 
SUM(tot.invalid_votes) AS total
FROM (SELECT DISTINCT QV, invalid_votes FROM `results`) tot

This will return the SUM of the Distinct values based on QV field.

Table :

QV  invalid_votes
0544    5
0544    5
0544    5
0545    6
0545    6

based on the database information you provided i get the following result 11

笨笨の傻瓜 2024-11-15 13:42:40

我能想到的获得三个不同值之和的唯一方法是

Select sum (distinct f3) from yourtable

我希望它对您有意义,因为我仍在努力弄清楚您想要什么。

The only way I can think of to get the sum of the three different values is

Select sum (distinct f3) from yourtable

I hope it makes sense to you, because I'm still trying to figure out what you want.

凡间太子 2024-11-15 13:42:40

根据您发布的pastebin,

这应该有效

SELECT QV, SUM(invalid_votes) FROM `results` GROUP BY QV   

我得到以下结果

QV      SUM(invalid_votes)
0544    15
0545    12

Based on the pastebin you posted,

this should work

SELECT QV, SUM(invalid_votes) FROM `results` GROUP BY QV   

I get the following result

QV      SUM(invalid_votes)
0544    15
0545    12
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文