使用别名和COUNT创建SQL查询

时间:2014-05-10 15:45:23

标签: sql postgresql

请帮我创建使用别名和COUNT的查询。我有只有一个表,其中包含所有必要的信息,但由于我必须使用COUNT来获取最终结果中包含的人数,不幸的是我被迫使用别名,据我所知。

我有公司,城市和在这些公司工作的人员。 因此,我必须让每个城市的每个公司都有工作人员。 最初我试过这个:

SELECT COUNT (employee_name) FROM (SELECT company_city_name, company_name FROM mytable)

我在这里得到错误,说我必须使用别名。

我还试图结合" SELECT COUNT(employee_name)FROM mytable"和" SELECT company_city_name,company_name FROM mytable" (因为这两个查询分开工作):

SELECT COUNT (employee_name)
FROM mytable AND SELECT company_city_name, company_name FROM mytable

不工作,收到错误。我仍然没有t understand why I can使用AND来使它工作。无论如何,对于别名我完全糊涂了。我有这样的事情:

SELECT COUNT (employee_name)
FROM (SELECT company_city_name AS city_name, company_name AS company FROM mytable AS t1)

我在哪里错了?

1 个答案:

答案 0 :(得分:1)

对于此查询:

SELECT COUNT(employee_name)
FROM (SELECT company_city_name, company_name FROM mytable)

您指的是employee_name,但子查询中没有名称。这个版本应该有效:

SELECT COUNT(employee_name)
FROM (SELECT company_city_name, company_name, employee_name FROM mytable) t
--------------------------------------------------------------------------^

但我不知道为什么你会想要一个子查询。

为什么我认为你想要聚合?

select company_name, company_city_name, count(*) as num_employees
from mytable
group by company_name, company_city_name;