【问题标题】:Getting a total from multiple rows in MySQL从 MySQL 中的多行获取总数
【发布时间】:2017-05-25 22:57:07
【问题描述】:

我不太擅长 MySQL 查询。有人可以帮我弄清楚如何做到这一点吗?

我有一张这样的表格(我们称之为 stats):

+----+-------+-----+
| id | memid | qty |
+----+-------+-----+
| 1  | 99    | 0   |
+----+-------+-----+
| 2  | 102   | 22  |
+----+-------+-----+
| 3  | 102   | 10  |
+----+-------+-----+
| 4  | 99    | 100 |
+----+-------+-----+
| 5  | 17    | 25  |
+----+-------+-----+
| 6  | 87    | 72  |
+----+-------+-----+
| 7  | 36    | 0   |
+----+-------+-----+
| 8  | 102   | 6   |
+----+-------+-----+

我需要一个 MySQL 查询,它将所有memidsORDER BY ASC 中的qty 组合在一起,每个memid 的总数为qty

提前感谢您的帮助! :)

【问题讨论】:

  • 感谢@Barmar,但请记住在发布 cmets 时不要贬低他人。不要以为我没有先尝试。如果你不想回应,那就不要。请不要再回复了,我不想因为我的小事打扰你。
  • 我们只能通过您在问题中发布的内容。如果您确实先尝试过,您应该在此处发布它,以便我们帮助您修复它。

标签: mysql add multiple-columns


【解决方案1】:

您可以在查询中选择SUM作为另一个字段并按数量排序,例如:

SELECT id, memid, qty, SUM(qty)
FROM table
ORDER BY qty;

请注意,SUM 将为所有行返回相同的值,因为它将是一个常量值。

如果您每个 memid 有多个记录,并且想要计算每个 memid 的 SUM,那么您可以使用 GROUP BY,例如:

SELECT memid, SUM(qty) AS `sum`
FROM table
GROUP BY memid
ORDER BY sum;

【讨论】:

  • 这只会返回一行,因为您没有GROUP BY
  • 他想要每个memid 的总和。 id 可能是主键并且是唯一的。
  • @Barmar OP 已经特别提到了combine the qty of all the memids,所以我故意不添加GROUP BY。无论如何,我已经添加了另一个答案。
  • @Barmar 更新了答案,是的,可能是这样。
  • @DarshanMehta 谢谢!有时很难把你的头绕在事情上。有好心人指路真是太好了。这正是我所需要的。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多