sql - 按区域(北,东,西,南)sql分组邮政编码
问题描述
我有法国的这种类型的数据,我想使用 SQL 将这些邮政编码分为南/北/东/西 4 个类别。这可能吗?我可以说,如果纬度 > 48 且经度 > 2.5,则该区域称为东北。如果纬度 >48 且经度<2.5,则该区域称为西北部。如果纬度<48 和经度>2.5,则该地区称为东南,纬度 <48 和经度 <2.5,则该地区称为 South Oues 谢谢
+---------+------------------------+------------+-------------------+
| zipcode | city | latitude | longitude |
+---------+------------------------+------------+-------------------+
| 13210 | Saint-Rémy-de-Provence | 43.788652 | 4.831343 |
| 13800 | Istres | 43.506196 | 4.99036599999999 |
| 37000 | Tours | 47.3951208 | 0.693232599999988 |
| 78480 | Verneuil-sur-Seine | 48.9796889 | 1.97723380000002 |
| 95150 | Taverny | 49.0243127 | 2.22085059999995 |
| 91300 | Massy | 48.73027 | 2.28712500000006 |
| 69800 | Saint-Priest | 45.7168398 | 4.92662189999999 |
| 17870 | breuil magne | 45.9840161 | -0.9589952 |
| 76100 | Rouen | 49.4341826 | 1.08828110000002 |
| 38500 | Voiron | 45.3520189 | 5.57151959999999 |
| 31500 | Toulouse | 43.6010501 | 1.46503830000006 |
| 78400 | Chatou | 48.9027528 | 2.15630869999995 |
| 94000 | Créteil | 48.7968017 | 2.44876620000002 |
| 69700 | Loire-sur-Rhône | 45.5604967 | 4.80611650000003 |
+---------+------------------------+------------+-------------------+
解决方案
我可以说,如果纬度 > 48 且经度 > 2.5,则该区域称为东北。如果纬度 >48 且经度<2.5,则该区域称为西北部。如果纬度<48 且经度>2.5,则该区域称为东南,纬度<48 且经度<2.5,则该区域称为西南。
这听起来像一个case
表达:
select . . . ,
(case when latitude >= 48 and longitude > 2.5
then 'Northeast'
when latitude <= 48 and longitude > 2.5
then 'Southeast'
when latitude > 48 and longitude <= 2.5
then 'Northwest'
when latitude < 48 and longitude <= 2.5
then 'Southwest'
end)
推荐阅读
- reactjs - 注释函数类型以接受 React.MouseEvent 参数或保持匿名
- javascript - 用于分组操作的 VSC API
- django - Django ModelFormset 的编辑视图
- python - 如何在另一个函数中使用一个函数收集的数据
- python - aws elasticbeanstalk上的python包导入错误
- sql - 如何传递包含在 SQL Server 中声明的变量中的列
- ruby - 将 _includes 和 _layouts 文件添加到 Jekyll 目录
- python - 根据前两行计算股票价值
- git - 维护本地 Git repo 的工作流浅克隆在最新版本标签
- android - CustomTabs 活动破坏了启动活动