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%出席
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