SQL - 每人计数

时间:2014-04-10 22:22:40

标签: sql

使用MySQL
假设我在列表中有记录:
PersonName,ProjectType

PersonName包含人名。 ProjectType包含项目类型,即Software,Mechanical等。

目标:

我想从该表中选择以获得每人的项目数量。 我需要总数和项目数量。

如何为此编写SQL?

  1. 每人总项目数
  2. 每个ProjectType的项目数,每人
  3. 我希望能够以PersonName,#ofProjects格式获取数据。

    我尝试查看类似的问题/答案,但我不太了解我想要的信息。

2 个答案:

答案 0 :(得分:3)

每人的项目总数

select
  person, count(*) as TotalProjectsPerPerson
from
  table
group by person

每个ProjectType的项目数,每人

select
  person, projecttype, count(*) as TotalProjectsPerTypePerPerson
from
  table
group by person, projecttype

答案 1 :(得分:2)

SELECT PersonName,
       count(ProjectType) As NumberOfProjectsPerPerson
FROM TABLE
GROUP BY PersonName

这会获取每人的项目数量。

如果一个项目中可以有不同的项目,请使用count(distinct ProjectType) ProjectType,无论如何都需要。

select
  PersonName, ProjectType, count(*) as TotalProjectsPerTypePerPerson
from
  TABLE
group by PersonName, ProjectType

将为每个人获取每个ProjectType的项目数。