Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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中加入&Groupby?_Sql_Oracle - Fatal编程技术网

如何在SQL中加入&Groupby?

如何在SQL中加入&Groupby?,sql,oracle,Sql,Oracle,我正在Oracle SQL Developer中运行以下命令: SELECT order.adate, details.ordid, sum(details.price) as total FROM details,order where details.ordid=order.ordid GROUP BY details.ordid; 但我得到了这个错误: ORA-00979: not a GROUP BY expression 00979. 00000 - "

我正在Oracle SQL Developer中运行以下命令:

SELECT 
  order.adate,
  details.ordid,
  sum(details.price) as total 
FROM details,order 
where details.ordid=order.ordid 
GROUP BY details.ordid;
但我得到了这个错误:

ORA-00979: not a GROUP BY expression
00979. 00000 -  "not a GROUP BY expression"
您的select列与group by不匹配-select中有两个未聚合列,group by中只有一个列。大概,您想要:

select o.adate, d.ordid, sum(d.price) as total 
from details d join
     order o
     on d.ordid = o.ordid 
group by o.adate, d.ordid;
或者更可能:

select o.adate, sum(d.price) as total 
from details d join
     order o
     on d.ordid = o.ordid 
group by o.adate;
注:

请勿在FROM子句中使用逗号。始终使用正确、明确、标准、可读的联接语法。 表别名使查询更易于编写和读取。 order对于表来说是一个非常糟糕的名称,因为它是SQL关键字。 您的select列与group by不匹配-select中有两个未聚合列,group by中只有一个列。大概,您想要:

select o.adate, d.ordid, sum(d.price) as total 
from details d join
     order o
     on d.ordid = o.ordid 
group by o.adate, d.ordid;
或者更可能:

select o.adate, sum(d.price) as total 
from details d join
     order o
     on d.ordid = o.ordid 
group by o.adate;
注:

请勿在FROM子句中使用逗号。始终使用正确、明确、标准、可读的联接语法。 表别名使查询更易于编写和读取。 order对于表来说是一个非常糟糕的名称,因为它是SQL关键字。
样本数据和预期结果将有所帮助。错误似乎很明显。样本数据和期望的结果会有所帮助。错误似乎很明显。