【问题标题】:Imitate partitions/window functions in sqlkorma在 sqlkorma 中模仿分区/窗口函数
【发布时间】:2018-11-12 21:40:29
【问题描述】:

我正在尝试使用 sqlkorma 调用此函数的等效函数,但在文档中没有找到等效分区 (http://sqlkorma.com/docs):

SELECT * FROM (
SELECT DISTINCT cgi, scgi, c.id, c.name, c.address, c.city,
c.state_or_province, c.postal_code, primary_country,
    ROW_NUMBER() OVER (
    PARTITION BY cgi
) AS ROW_NUMBER
from ccs
join c on c.id = ccs.id) groups
WHERE groups.ROW_NUMBER = 1 ORDER BY cgi

为了清楚起见,在我的数据库中,有一个一对多的关系列变量“cgi”和“c.id”

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 1) 尝试查找“DISTINCT ON”postgresql 术语的等效项" 2) 尝试聚合数据并从每个 cgi 中选择第一个 c.id - 我不认为聚合修饰符是方式去 3) 尝试在此处进行相当于最佳答案的第二个查询:stackoverflow.com/questions/3800551/…

标签: clojure korma sqlkorma


【解决方案1】:

找到了一个简单的解决方案 - sqlkorma 允许您执行原始 SQL,我指定了 postgresql DISTINCT ON (column_to_partition_on), column_to_partition_on, column1, column2 FROM table。使用它作为查询文本,这是使用 korma 执行原始 sql 的一般格式:

(exec-raw my-database query-text :results)

更多信息http://sqlkorma.com/docs

【讨论】:

猜你喜欢
  • 2023-03-06
  • 2016-06-01
  • 2014-04-26
  • 1970-01-01
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 2018-09-12
  • 1970-01-01
相关资源
最近更新 更多