在SQL中创建带有计数的视图

在SQL中创建带有计数的视图,sql,oracle,view,count,Sql,Oracle,View,Count,我需要在SQL中创建一个视图,通过计算一个员工已完成的任务数,但只显示一个有3个以上任务的员工。我遇到的问题是在视图中显示计数。我得到的错误是“缺少右括号” “计数”是一个函数。它需要括号中的参数: ... AS SELECT COUNT(T.TASK_ID) ... “计数”是一个函数。它需要括号中的参数: ... AS SELECT COUNT(T.TASK_ID) ... 你的代码毫无意义。我怀疑你想要: CREATE VIEW EMPLOYEE_TASKS AS SE

我需要在SQL中创建一个视图,通过计算一个员工已完成的任务数,但只显示一个有3个以上任务的员工。我遇到的问题是在视图中显示计数。我得到的错误是“缺少右括号”

“计数”是一个函数。它需要括号中的参数:

...

AS SELECT COUNT(T.TASK_ID)

...
“计数”是一个函数。它需要括号中的参数:

...

AS SELECT COUNT(T.TASK_ID)

...

你的代码毫无意义。我怀疑你想要:

CREATE VIEW EMPLOYEE_TASKS AS
    SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, COUNT(*) as num_tasks
    FROM EMPLOYEE E JOIN
         TASK T
         ON E.EMPLOYEE_ID = T.TASK_ID
    GROUP BY E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME
    HAVING COUNT(*) > 3; 

你的代码毫无意义。我怀疑你想要:

CREATE VIEW EMPLOYEE_TASKS AS
    SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, COUNT(*) as num_tasks
    FROM EMPLOYEE E JOIN
         TASK T
         ON E.EMPLOYEE_ID = T.TASK_ID
    GROUP BY E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME
    HAVING COUNT(*) > 3; 

创建视图时,您可以选择在视图名称之后提供一个插入式列名列表,但是,该列表不应采用alias.column_name格式,您只提供了列名。此外,如果确实提供了列名的可选列表,则定义视图的查询的投影(选择列表)在其投影中的列数应与列别名列表中的列数相同

当前,视图定义存在以下问题:

  • 列别名列表中有表别名(
    E.
    T.
  • 查询投影中只有一列,但视图列别名列表中有四个别名
  • COUNT T.TASK\u ID
    不是有效的列表达式,
    COUNT(T.TASK\u ID)
  • WHERE
    子句中使用
    COUNT(T.TASK\u ID)
    ,但是,这是
    WHERE
    子句中不允许使用的聚合函数

  • 创建视图时,您可以选择在视图名称之后提供一个插入式列名列表,但是,该列表不应采用alias.column_name格式,您只提供了列名。此外,如果确实提供了列名的可选列表,则定义视图的查询的投影(选择列表)在其投影中的列数应与列别名列表中的列数相同

    当前,视图定义存在以下问题:

  • 列别名列表中有表别名(
    E.
    T.
  • 查询投影中只有一列,但视图列别名列表中有四个别名
  • COUNT T.TASK\u ID
    不是有效的列表达式,
    COUNT(T.TASK\u ID)
  • WHERE
    子句中使用
    COUNT(T.TASK\u ID)
    ,但是,这是
    WHERE
    子句中不允许使用的聚合函数

  • 请提供架构和一些数据以进行复制请提供架构和一些数据以进行复制。如果我没有说明要计数的列,计数是如何工作的?您不需要指定列名:
    count(*)
    只需计算由
    GROUP by
    子句聚集的行数,这实际上就是您要查找的Hanks信息。如果我没有说明要计数的列,计数是如何工作的?您不需要指定列名:
    count(*)
    只需计算由
    GROUP by
    子句聚集的行数,这实际上就是您要查找的信息