Mysql 如何在一个sql请求中获得多个计数?
我想要统计表中每个用户的行数。例如,假设我有这样一个表:Mysql 如何在一个sql请求中获得多个计数?,mysql,sql,count,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 |
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
name | user_id | count
-----+---------+------
Joe | 6 | 5
Mary | 8 | 3
Jack | 3 | 4
Jill | 5 | 2
我想要一个结果,告诉我乔出现了5次,玛丽出现了3次,杰克出现了4次,吉尔出现了两次。所以我想要一个sql语句(最好是mySql,但任何语言都可以),它给出如下结果:
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
name | user_id | count
-----+---------+------
Joe | 6 | 5
Mary | 8 | 3
Jack | 3 | 4
Jill | 5 | 2
在sql中有这样做的方法吗?我找不到,但我对sql有很多不了解 请尝试:
Select
Count(userid) as count
, userid
, name
From table
Group by userid, name
SELECT COUNT(order_id) AS count, name FROM table_name GROUP BY name
提示:
分组依据
。此操作有效。我不知道为什么我应该同时按用户名和名称分组。似乎只要按userid分组就足够了,除非单个userid可以有多个名称