mysql - 在sql查询中计算距离(pythagoras)和运行计数

标签 mysql sql database ms-access geolocation

我正在尝试在 SQL 中构建一个相当复杂的查询,作为一个初学者,我将非常感谢一些帮助来构建它。

我正在努力实现以下目标:

population_postcodes table

enter image description here

1/计算 target_postcodes 表中的邮政编码(比如 E1 1AA)与 population_postcodes 表中的所有邮政编码之间的距离,使用毕达哥拉斯的笛卡尔纬度和经度坐标:

SQRT( POW(MY_Y_AXIS - Y_AXIS, 2) + POW(MY_X_AXIS-X_AXIS, 2) )

2/使用这些distance 值创建一个新列,

not sure how to do that step

2-bis/根据我们获得的distance 值对population_postcodes 中的邮政编码进行排序,

not sure how to do that step

3/从最近的邮政编码开始,将 population 列中的值添加到 running_count 列 UNTIL running_count > Number_of_beds of E1 1AA ,

建议的运行计数查询 - 但缺少上述中断条件:

SELECT distance, Population,
 (SELECT sum(population_postcodes.Population)) AS Total

FROM population_postcodes
WHERE population_postcodes.distance <= T1.distance) AS Total

FROM population_postcodes AS T1

4/创建一个新表,其中包含邮政编码 E1 1AA (target_postcode) 和添加到我们的运行计数中的最后一个邮政编码的距离值。

最后,我需要在整个 target_postcodes 表上循环此查询。

非常感谢您帮助新手!

最佳答案

1., 2. 将表放在一起,并在表之间进行操作,需要使用Join http://dev.mysql.com/doc/refman/5.0/en/join.html 否则你的公式是正确的。要将其创建为查询中的列,只需将其写入投影(选择)部分即可。 示例:

select 
population_postcodes.*, 
target_postcodes.*, 
SQRT( POW(population_postcodes.longitude- target_postcodes.longitude, 2) + POW(population_postcodes.latitude-target_postcodes.latitude, 2) ) as distance
from population_postcodes JOIN target_postcodes

要点 2 之二。以 Order by column_name asc/desc 结尾 http://dev.mysql.com/doc/refman/5.0/en/sorting-rows.html

要点3. 把所有东西都写成一个子查询,在top query中只选择你需要的。另请查看 HAVING http://dev.mysql.com/doc/refman/5.0/en/subqueries.html http://dev.mysql.com/doc/refman/5.0/en/group-by-extensions.html

要点 4. 查看创建表格的方法并应用您所学的知识

create table mytablename
select ... my projection columns
from ...

http://dev.mysql.com/doc/refman/5.1/en/create-table.html

关于mysql - 在sql查询中计算距离(pythagoras)和运行计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20994005/

相关文章:

php - 从复选框插入许多值,只有最后一个值插入到数据库中

php - 如何检查使用旧 API 的 MySQL 查询是否成功?

mysql - 基于另一个表列值的动态表连接?

sql - 对 BigQuery 中多列的数字求和

python - 在 Pandas 数据框中搜索某个范围内的值?

php - 从回发获取汽车的问题

mysql - 针对特定场景使用 sql 查询检索数据

mysql - 如何按工作部门和性别组合进行分组

asp.net-mvc - 搜索数据库 - ASP.NET MVC C#

mysql - SQL:ERD 图 - 数据冗余。