Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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 统计不同国家的几家商店_Sql_Oracle_Count - Fatal编程技术网

Sql 统计不同国家的几家商店

Sql 统计不同国家的几家商店,sql,oracle,count,Sql,Oracle,Count,我使用的是Oracle SQL Developer,我有一个名为Stores的表,带有一个位置标识符,指向另一个名为“location”的表,该表指向自身,以标识自己的国家/城市等 我想计算某个国家有多少家商店,但查询只计算同一个城市有多少家 查询是(问题在计数部分,翻译:tienda store,lugar location): 结果是这样的: Direccion |Ciudad |Pais |Cantidad address 4|Miami |USA | 1 ad

我使用的是Oracle SQL Developer,我有一个名为Stores的表,带有一个位置标识符,指向另一个名为“location”的表,该表指向自身,以标识自己的国家/城市等

我想计算某个国家有多少家商店,但查询只计算同一个城市有多少家

查询是(问题在计数部分,翻译:tienda store,lugar location):

结果是这样的:

Direccion |Ciudad  |Pais  |Cantidad  
 address 4|Miami   |USA   |   1  
 address 3|New York|USA   |   1  
 address 2|Toronto |Canada|   2  
 address 1|Toronto |Canada|   2   
何时应显示:

Direccion |Ciudad  |Pais  |Cantidad  
 address 4|Miami   |USA   |   2  
 address 3|New York|USA   |   2 
 address 2|Toronto |Canada|   2  
 address 1|Toronto |Canada|   2   
我假设它计算的是相同的城市,但我不知道如何让它计算国家


我想这正是你想要的:

select t.direccion, lc.nombre as ciudad, lp.nombre as pais,
       count(*) over (partition by lp.nombre)
from tienda t join
     lugar lc
     on t.fk_lugar = lc.id and lc.tipo = 'CIUDAD' join
     lugar lp
     on lc.?? = lp.id and lp.tipo = 'PAIS';

关键思想是上的
计数(*)。一个窗口函数可以进行您想要的计数。我不清楚正确的
join
键是用于
pais

的,我想这正是您想要的:

select t.direccion, lc.nombre as ciudad, lp.nombre as pais,
       count(*) over (partition by lp.nombre)
from tienda t join
     lugar lc
     on t.fk_lugar = lc.id and lc.tipo = 'CIUDAD' join
     lugar lp
     on lc.?? = lp.id and lp.tipo = 'PAIS';

关键思想是
上的
计数(*)。一个窗口函数可以进行您想要的计数。我不清楚什么是正确的
join
键用于
pais

您可以显示您的数据集吗?编辑以添加数据集图片@realspiritualsIt将更好地以文本形式保存数据,最好是以我们可以重建的格式保存数据。但是从这些图片来看,所有美国商店的cantidad值应该是3(来自芝加哥、迈阿密和达拉斯的商店),所有加拿大商店的cantidad值应该是3(来自多伦多的三家商店)?其他所有的商店都应该排成一行?确切地说,美国、加拿大、德国和英国的“Cantidad”应该有3家,而其他国家(如比利时、丹麦等)应该有1家。我马上会尝试添加create和insert序列,我认为Gordon当时展示的是正确的,在lc.fk_lugar=lp.id上有
?或者无论如何关闭,它提取对象字段的方式不同。请显示您的数据集好吗?编辑以添加数据集图片@realspiritualsIt最好将数据以文本形式保存,最好是以我们可以重建的格式保存。但是从这些图片来看,所有美国商店的cantidad值应该是3(来自芝加哥、迈阿密和达拉斯的商店),所有加拿大商店的cantidad值应该是3(来自多伦多的三家商店)?其他所有的商店都应该排成一行?确切地说,美国、加拿大、德国和英国的“Cantidad”应该有3家,而其他国家(如比利时、丹麦等)应该有1家。我马上会尝试添加create和insert序列,我认为Gordon当时展示的是正确的,在lc.fk_lugar=lp.id上有
?或者无论如何关闭,它没有以相同的方式提取对象字段。抱歉,没有说得足够清楚。卢加l指的是一座城市,卢加l指的是一个国家。所以lu.id指向这个国家的身份证号码。我添加了数据集图片以供更多参考之前添加了错误的数据,谢谢您的回答。很好,抱歉,我说得不够清楚。卢加l指的是一座城市,卢加l指的是一个国家。所以lu.id指向这个国家的身份证号码。我添加了数据集图片以供更多参考之前添加了错误的数据,谢谢您的回答。现在效果很好