如何在单个sql请求中获得多个计数?

时间:2019-01-22 02:05:16

标签: mysql sql count

我想计算表中每个用户的行数。例如,假设我有一个这样的表:

user_id | order_id | name
--------+----------+-----
      6 |       a1 |  Joe
      6 |       b4 |  Joe
      6 |       c2 |  Joe
      6 |       d5 |  Joe
      6 |       a6 |  Joe
      8 |       b9 | Mary
      8 |       c7 | Mary
      8 |       a2 | Mary
      3 |       ba | Jack
      3 |       c3 | Jack
      3 |       a9 | Jack
      3 |       b6 | Jack
      5 |       c9 | Jill
      5 |       d2 | Jill

我想要一个结果,告诉我乔出现5次,玛丽出现3次,杰克出现4次,吉尔出现两次。所以我想要一条sql语句(最好是mySql,但是任何语言都可以),这样的结果如下:

name | user_id | count
-----+---------+------
 Joe |       6 |     5
Mary |       8 |     3
Jack |       3 |     4
Jill |       5 |     2

在sql中有没有办法做到这一点?我找不到一个,但我对sql并不了解很多。

2 个答案:

答案 0 :(得分:1)

Select
Count(userid) as count
, userid
, name
From table
Group by userid, name

答案 1 :(得分:1)

请尝试:

SELECT COUNT(order_id) AS count, name FROM table_name GROUP BY name