计算查询结果出现的次数(基本 SQL 问题)
Counting the number of times a result from a query shows up (basic SQL question)
我有这三个表:
我需要列出员工姓名和他们从事的项目数量,我不太确定该怎么做。现在我可以使用这个列出所有参与过项目的员工:
SELECT staff.s_name FROM Staff staff
INNER JOIN Work_on work ON staff.s_id = work.s_id
INNER JOIN Projects proj ON work.p_id = proj.p_id
这显示了所有参与过一个项目的人的名字,有些名字被列出了两次,表明他们参与了多少个项目。我不知道如何将其列为单独的值并显示他们的名称和他们一直在从事的项目数量,显然我需要在某处使用 COUNT() 函数但我不知道如何计算结果中每次出现名称的次数。有人可以给我一些小费吗?
结果应该是这样的:
现在我只得到这个:
它正确显示了用户在某个项目上工作的次数,但我不知道如何使用它来创建另一个显示计数的列。
有帮助吗?
SELECT staff.s_name, count(1) FROM Staff staff
JOIN Work_on work ON staff.s_id = work.s_id
GROUP BY staff.s_name
我有这三个表:
我需要列出员工姓名和他们从事的项目数量,我不太确定该怎么做。现在我可以使用这个列出所有参与过项目的员工:
SELECT staff.s_name FROM Staff staff
INNER JOIN Work_on work ON staff.s_id = work.s_id
INNER JOIN Projects proj ON work.p_id = proj.p_id
这显示了所有参与过一个项目的人的名字,有些名字被列出了两次,表明他们参与了多少个项目。我不知道如何将其列为单独的值并显示他们的名称和他们一直在从事的项目数量,显然我需要在某处使用 COUNT() 函数但我不知道如何计算结果中每次出现名称的次数。有人可以给我一些小费吗?
结果应该是这样的:
现在我只得到这个:
它正确显示了用户在某个项目上工作的次数,但我不知道如何使用它来创建另一个显示计数的列。
有帮助吗?
SELECT staff.s_name, count(1) FROM Staff staff
JOIN Work_on work ON staff.s_id = work.s_id
GROUP BY staff.s_name