Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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_Oracle - Fatal编程技术网

Sql 获取出席人数的百分比

Sql 获取出席人数的百分比,sql,oracle,Sql,Oracle,我需要一份部门名单以及该部门将参加会议的人员百分比 输出: 销售=30%出席 会计=15%出席 表EMP: EMPID FNAME LNAME DEPT 001......John......Lock...Sales 002......Lisa......Conrad...Accounting 003......Jerry.....Forts...Billing 004......Sara......Duval...Sales 那么数学部分我不确定 select sum( )/cou

我需要一份部门名单以及该部门将参加会议的人员百分比

输出:

  • 销售=30%出席
  • 会计=15%出席
表EMP:

EMPID FNAME LNAME DEPT 001......John......Lock...Sales 002......Lisa......Conrad...Accounting 003......Jerry.....Forts...Billing 004......Sara......Duval...Sales 那么数学部分我不确定

select sum(  )/count(*)*100
帮忙?我的大脑被炸了…

试试这个:

CREATE TABLE emp (
  empid NUMBER,
  fname VARCHAR2(20),
  dept VARCHAR2(20)
);

CREATE TABLE attendance (
  empid NUMBER,
  party_attend VARCHAR2(1)
);

INSERT INTO emp VALUES (1,' John', 'Sales');
INSERT INTO emp VALUES (2,' Lisa', 'Accounting');
INSERT INTO emp VALUES (3,' Jerry', 'Billing');
INSERT INTO emp VALUES (4,' Sara', 'Sales');

INSERT INTO attendance VALUES (1, 'Y');
INSERT INTO attendance VALUES (2, 'N');
INSERT INTO attendance VALUES (3, 'N');
INSERT INTO attendance VALUES (4, 'Y');

COMMIT;

SELECT
    e.dept,
    COUNT(DECODE(att.party_attend, 'Y', 1, NULL)) / COUNT(1) * 100 AS percentage
  FROM
    emp e JOIN attendance att ON (e.empid = att.empid)
GROUP BY e.dept;
输出:

DEPT PERCENTAGE -------------------- ---------- Accounting 0 Billing 0 Sales 100 部门百分比 -------------------- ---------- 会计0 账单0 销售额100
输出结果并非您所期望的,因为在您的数据中,所有参加聚会的员工都来自销售部门…

非常感谢!!这正是我想要的是,很抱歉,我刚刚制作的输出,但这就是我想要的关于如何正确使用连接和数学部分的内容
CREATE TABLE emp (
  empid NUMBER,
  fname VARCHAR2(20),
  dept VARCHAR2(20)
);

CREATE TABLE attendance (
  empid NUMBER,
  party_attend VARCHAR2(1)
);

INSERT INTO emp VALUES (1,' John', 'Sales');
INSERT INTO emp VALUES (2,' Lisa', 'Accounting');
INSERT INTO emp VALUES (3,' Jerry', 'Billing');
INSERT INTO emp VALUES (4,' Sara', 'Sales');

INSERT INTO attendance VALUES (1, 'Y');
INSERT INTO attendance VALUES (2, 'N');
INSERT INTO attendance VALUES (3, 'N');
INSERT INTO attendance VALUES (4, 'Y');

COMMIT;

SELECT
    e.dept,
    COUNT(DECODE(att.party_attend, 'Y', 1, NULL)) / COUNT(1) * 100 AS percentage
  FROM
    emp e JOIN attendance att ON (e.empid = att.empid)
GROUP BY e.dept;
DEPT PERCENTAGE -------------------- ---------- Accounting 0 Billing 0 Sales 100