单个查询中的多个计数摘要

时间:2011-12-02 09:37:16

标签: mysql sql

我有一个数据库工作表。 每个作业都是由用户创建的。有很多用户。 用户表包含user_id和用户电子邮件地址。

---------------
**JOBS_TABLE**
---------------
JOB_ID
USER_ID
---------------

---------------
**USERS_TABLE**
---------------
USER_ID
USER_EMAIL
---------------

我想知道每个用户创建了多少个作业。是否可以在SQL中执行此操作?

理想情况下,我希望得到这样的结果。

------------------------------
|USER_ID|JOB_COUNT|USER_EMAIL|
------------------------------
|user1  |2000     |x@sfd.com |
|user2  |5433     |sd@fds.com|
------------------------------

这是一次性的报告,所以我不担心性能。我正在使用MySQL。

由于

3 个答案:

答案 0 :(得分:2)

这是一个标准计数查询(如果你想要所有人,即使他们没有工作记录,也可以用户LEFT JOIN而不是INNER JOIN):

SELECT
  U.USER_ID,
  COUNT(JOB_ID) AS JOB_COUNT,
  U.USER_EMAIL
FROM
  USERS_TABLE U

  INNER JOIN JOBS_TABLE J ON
  U.USER_ID = J.USER_ID
GROUP BY
  U.USER_ID,
  U.USER_EMAIL

答案 1 :(得分:0)

    select user.USER_ID,user.USER_EMAIL,count(distinct jobs.JOB_ID) 
from USERS_TABLE user natural join JOBS_TABLE jobs group by user.USER_ID   

答案 2 :(得分:0)

SELECT u.user_id,u.user_email,count(j.job_id)as jobcount FROM users你通过u.user_id加入u.user_id = j.user_id group上的作业j

此查询将输出如下:

user_id user_email jobcount
1 123@abc.com 3
2 456@def.com 1