oracle,选择平均值和总和查询

时间:2018-04-05 14:22:01

标签: sql oracle

我有一个表格,产品放入类型,还有成本,尝试输出每种类型的产品和平均成本.eg:

category   No.   average price  
hats       12    10 

但每个类别只有一行

select Category "Category", sum category "No.", average category "average Price"  
from table  

我找不到其他类似查询的例子。

2 个答案:

答案 0 :(得分:1)

assign

不要在双引号中使用列名,这在Oracle中是非常糟糕的做法。只需确保您的列名遵循规则(仅限字母数字字符和下划线,以字母开头,不要使用DATE或TYPE等Oracle关键字)。

答案 1 :(得分:0)

由于我没有你的桌子,我们以我的为例。

CREATE TABLE EMPLOYEES 
   (EMPLOYEE_ID NUMBER(6,0), 
    FIRST_NAME VARCHAR2(20), 
    LAST_NAME VARCHAR2(25) CONSTRAINT EMP_LAST_NAME_NN NOT NULL ENABLE, 
    EMAIL VARCHAR2(25) CONSTRAINT EMP_EMAIL_NN NOT NULL ENABLE, 
    PHONE_NUMBER VARCHAR2(20), 
    HIRE_DATE DATE CONSTRAINT EMP_HIRE_DATE_NN NOT NULL ENABLE, 
    JOB_ID VARCHAR2(10) CONSTRAINT EMP_JOB_NN NOT NULL ENABLE, 
    SALARY NUMBER(8,2), 
    COMMISSION_PCT NUMBER(2,2), 
    MANAGER_ID NUMBER(6,0), 
    DEPARTMENT_ID NUMBER(4,0));

让我们向员工提出这些问题,告诉他们的工资。我们将按照他们的工作对这些人进行分组。

因此,不是按类别,而是通过JOB_ID进行。

由于我们希望在一系列TYPES员工中使用数字,因此我们需要使用GROUP BY子句。

这些函数按名称对列进行调用,例如:查询的SELECT部分​​中的func(col)。

SELECT
    job_id,
    SUM(salary),
    AVG(salary),
    MIN(salary),
    MAX(salary)
FROM
    employees
GROUP BY
    job_id
order by 2 desc, 3 desc

这给了我们这样的东西:

enter image description here