【发布时间】:2016-06-03 00:45:35
【问题描述】:
我正在使用 Oracle SQL Developer,我有一个名为 Stores 的表,其位置标识符指向另一个名为“Location”的表,该表指向自身以标识它自己的国家/城市/等。
我想计算某个国家有多少家商店,但查询只计算同一个城市有多少家
查询是(问题在计数部分,翻译:tienda-store,lugar-location):
SELECT ti.nro||' '|| ti.calle as "Direccion",l.nombre "Ciudad", lu.nombre "Pais",
(SELECT COUNT(*) FROM tienda tie WHERE tie.fk_lugar = l.id) "Cantidad"
FROM tienda t,THE (SELECT direccion from tienda WHERE tienda.id=t.id)
ti,lugar l, lugar lu
WHERE t.fk_lugar=l.id and l.tipo='CIUDAD' and
l.lugar_id=lu.id and lu.tipo = 'PAIS'
结果是这样的:
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
我假设它计算的是相同的城市,但我不知道如何让它计算国家
【问题讨论】:
-
你能展示你的数据集吗?
-
编辑添加数据集图片@realspirituals
-
最好是文本形式的数据,最好是我们可以重建的格式。但是从这些图像来看,所有美国商店的候选值是否应该是 3(来自芝加哥、迈阿密和达拉斯的商店),而所有加拿大商店的候选值应该是 3(来自多伦多的三个商店)?所有其他商店都应该有行吗?
-
没错,美国、加拿大、德国和英国在“Cantidad”中应该有 3 个,而其他国家(比利时、丹麦等其他国家/地区)应该有 1 个。我会尝试添加 create并立即插入序列
-
我认为 Gordon 展示的内容是正确的,
on lc.fk_lugar = lp.id?或者无论如何关闭,它不会以相同的方式提取对象字段。