【发布时间】:2017-01-10 17:24:29
【问题描述】:
我昨天问this关于如何计算方格中的客户数量的问题,我得到的解决方案是:
SELECT 10 * (customer_x / 10), 10 * (customer_y / 10), COUNT (*) FROM t_customer GROUP BY customer_x / 10, customer_y / 10 ORDER BY 3 DESC;
现在我需要显示包含零个客户的网格方块,但我不确定如何执行此操作,因为查询是基于通常数字的计算,并且表格中实际上并不存在网格。我应该使用 ISNULL() 函数吗?我当前数据库中此查询的结果是:
90|90|7
30|20|4
-20|-40|2
-10|-20|2
-10|-10|2
-40|-40|1
-40|-30|1
-40|30|1
-30|0|1
-20|0|1
-20|30|1
-10|-30|1
-10|40|1
0|-20|1
0|-10|1
0|0|1
0|10|1
0|40|1
10|20|1
20|20|1
30|-40|1
30|30|1
但是考虑到该区域有 100 个方格,有很多没有客户。我只需要一个查询,它将显示除上述网格正方形之外的所有内容。我正在使用 SQLite3,任何帮助将不胜感激。 (90,90) 方格中的那些将被忽略。
样本数据:
我需要从 10 x 10 网格(-50 到 +50,以 10 为增量)中的 100 个网格方块中列出没有客户的网格方块。使用所有可能的网格正方形的虚拟表并从中减去上述查询可能更容易?
【问题讨论】:
-
查询返回(数据基于)数据库中的行。你能添加“空”行吗?
-
我该怎么做?
-
带插入。是否有任何列来区分空行和有效行?
-
所有客户行已完全填满。唯一的列是 customer_id、customer_x 和 customer_y,因此没有空行但有不包含客户的网格。
-
显示一些样本数据,以及想要的结果。
标签: sql sqlite gis grid-layout