我有一个表格,产品放入类型,还有成本,尝试输出每种类型的产品和平均成本.eg:
category No. average price
hats 12 10
但每个类别只有一行
select Category "Category", sum category "No.", average category "average Price"
from table
我找不到其他类似查询的例子。
答案 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
这给了我们这样的东西: