sql"找到满足如下条件的员工按国家进行汇总的汇总信息: 1. 不在州(/省)平均工资小于等于8000的州(/省)中工作的员工 查询的结果应该包括以下属性: 1. 国家名称 2. 国家中符合条件的员工人数 3. 国家中符合条件的员工的最低工资 4. 国家中符合条件的员工的最高工资"
时间: 2024-03-24 22:41:06 浏览: 92
2021年全球国家省份州城市四级数据:洲、国家、州/省、城市
下面是一种 SQL 查询语句,可以实现您所需的功能:
```sql
SELECT COUNTRY_NAME,
COUNT(*) AS EMP_COUNT,
MIN(SALARY) AS MIN_SALARY,
MAX(SALARY) AS MAX_SALARY
FROM EMPLOYEES e
JOIN DEPARTMENTS d ON e.DEPARTMENT_ID = d.DEPARTMENT_ID
JOIN LOCATIONS l ON d.LOCATION_ID = l.LOCATION_ID
JOIN COUNTRIES c ON l.COUNTRY_ID = c.COUNTRY_ID
WHERE c.COUNTRY_NAME NOT IN (
SELECT DISTINCT c.COUNTRY_NAME
FROM LOCATIONS l
JOIN COUNTRIES c ON l.COUNTRY_ID = c.COUNTRY_ID
JOIN DEPARTMENTS d ON l.LOCATION_ID = d.LOCATION_ID
JOIN EMPLOYEES e ON d.DEPARTMENT_ID = e.DEPARTMENT_ID
GROUP BY c.COUNTRY_NAME
HAVING AVG(e.SALARY) > 8000
)
GROUP BY c.COUNTRY_NAME;
```
该语句使用了多个表的 JOIN 操作,以及子查询和聚合函数。首先,使用一个子查询找到那些州(/省)平均工资小于等于 8000 的国家名称,然后在 EMPLOYEES、DEPARTMENTS、LOCATIONS 和 COUNTRIES 四个表中进行多次 JOIN 操作,筛选出符合条件的员工信息,并按照国家名称进行分组,计算出符合条件的员工人数、最低工资和最高工资。
希望这个查询语句能够帮到您。
阅读全文