在一个SQL查询中选择COUNT(id)和total

时间:2011-05-11 14:16:10

标签: mysql

表格中有很多项目。每个都有一个user_id。

我想了解每位用户的商品数量以及商品总数。

如果我这样做:

SELECT COUNT(id)
FROM items
GROUP BY user_id

...我得到每个用户的项目数,但我无法获得分组的项目总数。

是否可以这样做?

如果是这样,这是一种很好的做事方式吗?

选择它们后,我会更好地总结计数吗?

2 个答案:

答案 0 :(得分:3)

以下查询将为您提供一个额外的行,其中包含项目总数s和user_id = NULL。

SELECT user_id, COUNT(id) n_items
FROM items
GROUP BY user_id WITH ROLLUP

另请参阅Mysql docs on GROUP BY modifiers

答案 1 :(得分:1)

这样的东西......?

SELECT COUNT(*)
FROM items
UNION
SELECT COUNT(id)
FROM items
GROUP BY user_id

然后第一个结果将是总数,后续结果将是分组总数。

但就个人而言,我只是按照你所说的group by查询后添加它们。