Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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 如何使用oracle统计商品的销售额、城市、客户_Sql_Oracle - Fatal编程技术网

Sql 如何使用oracle统计商品的销售额、城市、客户

Sql 如何使用oracle统计商品的销售额、城市、客户,sql,oracle,Sql,Oracle,我有一个甲骨文的看法,并包括销售商品的细节。它是这样的: OrderId OrderDetailId GoodsId GoodsName UnitName销售数量价格客户名称国家/城市 我想要一个SQL语句来统计销售、城市数量、每种商品的客户数量。结果应该是这样的: GoodsId GoodsName销售数量(单位名称)城市数量客户数量 如何编写sql统计语句?谢谢 只需使用分组方式 select GoodsId, GoodsName, UnitName, sum(SalesQt

我有一个甲骨文的看法,并包括销售商品的细节。它是这样的:

OrderId OrderDetailId GoodsId GoodsName UnitName销售数量价格客户名称国家/城市 我想要一个SQL语句来统计销售、城市数量、每种商品的客户数量。结果应该是这样的:

GoodsId GoodsName销售数量(单位名称)城市数量客户数量
如何编写sql统计语句?谢谢

只需使用
分组方式

select GoodsId, GoodsName, UnitName, 
       sum(SalesQty) SalesQty, 
       count(distinct City) CityQty,
       count(distinct CustomerName) CustomerQty
from goods_view
group by GoodsId, GoodsName, UnitName

您可以使用
多维数据集
,也包括数量的小计和总计:

select GoodsId, GoodsName||'('||UnitName||')' GoodsName,
   sum(SalesQty) SalesQty, count(distinct City) CityQty, count(distinct CustomerName) CustomerQty
  from v_goods
 group by cube(GoodsId, GoodsName||'('||UnitName||')')
 order by GoodsId,GoodsName||'('||UnitName||')';

我认为最后一行的
CityQty
应该是一,而
CustomerQty
应该是二。@RadimBača是的,你是对的,我弄错了好的,我不知道使用不同的计数。您的回答是正确的,谢谢。@Net205不客气,我想您需要统计总数。顺便说一下,我已经编辑了答案,将单位名称包含在并列中,建议您在数据库中尝试。
select GoodsId, GoodsName, UnitName, 
       sum(SalesQty) SalesQty, 
       count(distinct City) CityQty,
       count(distinct CustomerName) CustomerQty
from goods_view
group by GoodsId, GoodsName, UnitName
select GoodsId, GoodsName||'('||UnitName||')' GoodsName,
   sum(SalesQty) SalesQty, count(distinct City) CityQty, count(distinct CustomerName) CustomerQty
  from v_goods
 group by cube(GoodsId, GoodsName||'('||UnitName||')')
 order by GoodsId,GoodsName||'('||UnitName||')';