Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-输出得分范围括号内的平均满意度/晋升次数_Sql - Fatal编程技术网

SQL-输出得分范围括号内的平均满意度/晋升次数

SQL-输出得分范围括号内的平均满意度/晋升次数,sql,Sql,到目前为止,我已经开发了一个查询,以输出分数范围内每个员工的计数(从评估表中得出的评估分数)。我正在努力弄清楚如何对输出的这些员工范围执行数学函数。有必要从我的员工表中提取信息,以统计最近5年/不到5年的晋升人数以及满意度水平。在有关范围的查询下方找到附件 SELECT t.range AS [0-1], count(Employee_ID) AS [Number of Employees] FROM ( SELECT CASE WHEN score BETWEEN 0 AND 0.25 TH

到目前为止,我已经开发了一个查询,以输出分数范围内每个员工的计数(从评估表中得出的评估分数)。我正在努力弄清楚如何对输出的这些员工范围执行数学函数。有必要从我的员工表中提取信息,以统计最近5年/不到5年的晋升人数以及满意度水平。在有关范围的查询下方找到附件

SELECT t.range AS [0-1], count(Employee_ID) AS [Number of Employees]
FROM (
SELECT CASE 
WHEN score BETWEEN 0 AND 0.25 THEN ‘0-0.25’
WHEN score BETWEEN 0.25 AND 0.5 THEN ‘0.25-0.5’
WHEN score BETWEEN 0.5 AND 0.75 THEN ‘0.5-0.75’
WHEN score BETWEEN 0.75 AND 1 THEN ‘0.75-1’
FROM Evaluation)
GROUP BY t.range;

这就是你想做的吗

SELECT CASE 
WHEN score BETWEEN 0 AND 0.25 THEN ‘0-0.25’
WHEN score BETWEEN 0.25 AND 0.5 THEN ‘0.25-0.5’
WHEN score BETWEEN 0.5 AND 0.75 THEN ‘0.5-0.75’
WHEN score BETWEEN 0.75 AND 1 THEN ‘0.75-1’ end AS range,
count(Employee_ID) AS [Number of Employees]
FROM Evaluation 
GROUP BY CASE 
WHEN score BETWEEN 0 AND 0.25 THEN ‘0-0.25’
WHEN score BETWEEN 0.25 AND 0.5 THEN ‘0.25-0.5’
WHEN score BETWEEN 0.5 AND 0.75 THEN ‘0.5-0.75’
WHEN score BETWEEN 0.75 AND 1 THEN ‘0.75-1’ end 

您正在使用子查询,所以请继续使用它。您只需要正确的别名:

SELECT e.range AS [0-1], count(*) AS [Number of Employees]
FROM (SELECT (CASE WHEN score BETWEEN 0 AND 0.25 THEN '0-0.25'
                   WHEN score BETWEEN 0.25 AND 0.5 THEN '0.25-0.5'
                   WHEN score BETWEEN 0.5 AND 0.75 THEN '0.5-0.75'
                   WHEN score BETWEEN 0.75 AND 1 THEN '0.75-1'
              END) as range
      FROM Evaluation
     ) e
GROUP BY e.range;
注:

  • 子查询需要一个别名。我用“e”表示“评估”
  • 卷曲单引号必须是直单引号(这可能是剪切粘贴问题)
  • EmployeeId
    未在外部查询中定义。我认为
    COUNT(*)
    可能是等效的

您的派生表(子查询)返回1列(未命名),但在顶层突然有2列。您的案例语句缺少一个“结束”标记,您正在使用的数据库中的问题。这正是我要找的!