[英]How do i create a view table to show current number of record of the same employee and the total count? SQL ORACLE
[英]How do I count something the number of employee that is in a different table in SQL?
问题问
“写一个查询以显示办公室所在的城市和国家/地区以及该位置的雇员人数。按雇员人数的降序对结果进行排序。”
到目前为止,我已经提出,
SELECT city, country, SELECT COUNT(city,country)
FROM Offices
ORDER BY(SELECT COUNT(city,country)
FROM Offices)DESC;
但是,它不会让我运行它。 我认为我在SELECT COUNT部分中犯了一个错误。
员工表包含
Office表包含
有人知道我做错了吗? 谢谢! 抱歉,这是很多东西。
使用联接和计数
SELECT city, country,officeLocation, COUNT(e.employeeNumber)
FROM Offices ofc join employees e on ofc.officeCode=e.officeCode
group by city, country,officeLocation
解决此问题的几种方法。 使用左外部联接:(请确保在此处使用左外部而不是INNER JOIN,否则您只会获得有员工的位置。在您的情况下可能会起作用,但是如果某个位置没有现有员工怎么办?)
SELECT City, Country, COUNT(e.employeeNumber) AS EmployeeCount
FROM Offices o
LEFT OUTER JOIN Employees e
ON e.OfficeCode = o.OfficeCode
GROUP BY City, Country
ORDER BY 3 DESC
或者,您可以将子查询与select语句一起使用:
SELECT City, Country,
(SELECT COUNT(*) FROM Employees e WHERE o.OfficeCode = e.OfficeCode) AS EmployeeCount
FROM Offices o
ORDER BY 3 DESC
You can do it using a LEFT JOIN, GROUP BY and ORDER BY.
We need LEFT JOIN and GROUP BY to get the employee count and the ORDER BY to order the results in descending order of no of employees.
SELECT OfficeCode, City, Country, COUNT(E.employeeNumber) AS EmployeeCount
FROM Offices O
LEFT JOIN Employees E ON E.OfficeCode = E.OfficeCode
GROUP BY OfficeCode, City, Country
ORDER BY COUNT(E.employeeNumber) DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.