ruby - Ruby Sequeĺ 中的空间 where 子句

标签 ruby postgresql postgis sequel

如何在 Ruby Sequel 中编写此 SQL 查询:

SELECT
  polygon.geometry, count(line)
FROM
  polygon, line
WHERE
  st_intersects(line.geometry, polygon.geometry)
GROUP BY
  polygon.geometry

最佳答案

可能有更好的方法,但这是我尝试的解决方案:

DB.from(:polygon, :line)
  .where('st_intersects(line.geometry, polygon.geometry')
  .select('polygon.geometry, count(line)')
  .group_by(:polygon__geometry)

生成的 SQL 查询(我用 Oracle 数据库做了这个,但结果应该是一样的):

#<Sequel::Oracle::Dataset: "SELECT 'polygon.geometry, count(line)' FROM \"POLYGON\", \"LINE\" WHERE (st_intersects(line.geometry, polygon.geometry) GROUP BY \"POLYGON\".\"GEOMETRY\"">

关于ruby - Ruby Sequeĺ 中的空间 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37864337/

相关文章:

javascript - Rails 根据集合选择的值呈现部分

ruby-on-rails - Nokogiri gem build error failed to build gem native extension on WSL with RVM

ruby-on-rails - 如何仅在一天中的某些时间之间向 Ruby 中的日期时间添加 15 分钟?

optimization - 如何自动确定哪些表需要在 postgresql 中进行真空/重建索引

java - 使用 Hibernate 查询语言的 PostgreSQL 全文搜索无法执行查询

json - 列表中的 Postgres JSON 查询

postgresql - 将点类型数据保存到 pg 服务器

postgresql - Postgres/Postgis - 使用不同的用户转储和恢复到新服务器

postgis - 从SQL创建SHP

javascript - jQuery 和 Rails 图像标记/矩形选择