Sql Oracle 12c-如何通过此查询进行分组和订购
下面的查询是关于GROUP BY和ORDER BY表达式的投诉-请帮助我更正-谢谢Sql Oracle 12c-如何通过此查询进行分组和订购,sql,oracle,Sql,Oracle,下面的查询是关于GROUP BY和ORDER BY表达式的投诉-请帮助我更正-谢谢 挑选 a、 名字| |“”| | a.姓为“Name”, 四舍五入(总额((b.单价-b.折扣)*b.数量)/100000)为“销售额” 从…起 员工a、订单详情b、订单c 哪里 a、 EmployeeID=c.EmployeeID和 b、 OrderID=c.OrderID 按1分组 按2描述订购 只取前5行; 以下是错误: a.FirstName|| ' ' ||a.LastName AS "Name",
挑选
a、 名字| |“”| | a.姓为“Name”,
四舍五入(总额((b.单价-b.折扣)*b.数量)/100000)为“销售额”
从…起
员工a、订单详情b、订单c
哪里
a、 EmployeeID=c.EmployeeID和
b、 OrderID=c.OrderID
按1分组
按2描述订购
只取前5行;
以下是错误:
a.FirstName|| ' ' ||a.LastName AS "Name",
ERROR at line 2:
ORA-00979: not a GROUP BY expression`
问候
托尼亚试试:
SELECT a.FirstName|| ' ' ||a.LastName AS "Name",
ROUND(SUM((b.UnitPrice - b.Discount) * b.Quantity)/100000) AS
"Sales"
FROM
Employees a, Order_Details b, Orders c
WHERE
a.EmployeeID = c.EmployeeID AND
b.OrderID = c.OrderID
GROUP BY
a.FirstName, a.LastName
ORDER BY
2 DESC
FETCH FIRST 5 ROWS ONLY;
与
ORDER BY
子句不同,您不能将用作列名或列位置号。如果分组列是一个表达式,则必须在GROUP BY
子句中使用该表达式,即a.FirstName | |''.| a.LastName
SUM
是将应用于此组的聚合函数,即使它是一个类似于此表达式的凌乱表达式。在oracle中,不能在group by中指定列号,只能指定列/表达式本身
SELECT a.FirstName || ' ' || a.LastName AS "Name",
ROUND(SUM((b.UnitPrice - b.Discount) * b.Quantity)/100000) AS "Sales"
FROM Employees a, Order_Details b, Orders c
WHERE a.EmployeeID = c.EmployeeID
AND b.OrderID = c.OrderID
GROUP BY a.FirstName || ' ' || a.LastName
ORDER BY 2 DESC
FETCH FIRST 5 ROWS ONLY;