ecto의`over / 2` 함수를 사용하여 창에 특정 frame_clause를 추가 할 수 없습니다.

TimPelgrim

ecto를 사용하여 Postgres 데이터베이스를 쿼리하고 누적 합계를 유지하기 위해 Window 함수를 추가해야합니다. 이것은 문제의 "금액"의 중복 값을 제외하고는 잘 작동하며 누적 합계를 위해 함께 추가됩니다. 원시 SQL에서 해결책은 사용자 정의 프레임 절 ( ROWS UNBOUNDED PRECEDING) 을 추가하는 것이지만 쿼리 DSL을 사용하여 ecto에이를 추가하는 명확한 방법은 없습니다.

우리 데이터베이스에는 여러 제품이 있으며 대부분은 금액으로 여러 등급을받습니다. 모든 등급의 합계뿐만 아니라 특정 하위 집합 내 금액의 누적 합계도 결정해야합니다 (문제와 관련이 없으며 일부 상황에서만). 현재 쿼리의 예는 다음과 같습니다.

 from(p in Product,
      left_join: ratings in assoc(p, :ratings),
      select: [
        p.id,
        sum(ratings.amount),
        sum(sum(ratings.amount))
        |> over(
          partition_by: p.selection_0,
          order_by: sum(ratings.amount)
        )
      ],
      group_by: p.id
    )

내가 말했듯이 총량이 동일한 제품을 제외하고는 잘 작동합니다. 이것은 다음 질문에서 질문하고 대답 한 것처럼 원시 postgresql에서 동일하게 작동하므로 예상됩니다. postgres 창 기능이있는 중복 줄

over/2함수를 사용하여 만든 창에 frame_clause를 추가하는 확실한 방법을 찾을 수 없습니다 . 프래그먼트 사용에 대해 생각했지만 where: fragment("...")frame_clause에 적용 할 수없는 리스트 표기법 (예 :)이 예상됩니다.

애슐리

Elixir 포럼 에서 답변을받은 것 같습니다.

from(p in Product,
  left_join: ratings in assoc(p, :ratings),
  select: [
    p.id,
    sum(ratings.amount),
    over(sum(sum(ratings.amount)), :w1)
  ],
  windows: [
    w1: [
      partition_by: p.selection_0,
      order_by: sum(ratings.amount),
      frame: fragment("rows unbounded preceding")
    ]
  ],
  group_by: p.id
)

참고 : https://hexdocs.pm/ecto/Ecto.Query.html#windows/3-frame

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

부모 클래스 포인터를 사용하여 벡터에 추가 할 때 하위 클래스 특정 함수를 사용할 수 없습니다.

분류에서Dev

Python의 Beautiful Soup을 사용하여 특정 span 태그에서 텍스트를 추출 할 수 없습니다.

분류에서Dev

Parse.com-특정 사용자를 역할에 추가 할 수 없습니다.

분류에서Dev

jquery 또는 javascript를 사용하여 행의 특정 td에 데이터를 추가 할 수 있습니까?

분류에서Dev

강력한 매개 변수를 사용하여 Rails 4의 Devise 사용자 모델에 사용자 정의 필드를 추가 할 수 없습니다.

분류에서Dev

사용자 정의 된 탐색 창에서 단추의 텍스트를 설정할 수 없습니다.

분류에서Dev

R의 웹 스크래핑 | rvest를 사용하여 특정 노드에서 정보를 추출 할 수 없습니다.

분류에서Dev

WAMP 서버의 localhost를 사용하여 PHP에 특정 이미지를 표시 할 수 없습니다.

분류에서Dev

PHP를 사용하여 내 SQL에 연결할 수 없습니다. 정의되지 않은 함수 mysql_connect ()

분류에서Dev

정규식 추출을 사용하여 헤더 내의 URL에서 GUID를 추출 할 수 없습니다.

분류에서Dev

POST 메서드를 사용하여 데이터베이스에 새 정보를 추가 할 수 없습니다.

분류에서Dev

.NET SDK를 사용하여 TaxService를 QBO에 추가 할 수 없습니다.

분류에서Dev

추가하기 전에 JTextArea의 텍스트를 설정할 수 없습니다.

분류에서Dev

mvc4를 사용하여 jquery의 테이블에 데이터를 추가 할 수 없습니다.

분류에서Dev

Meteor에서 계정 패키지를 사용하여 이메일을 추가 할 수 없습니다.

분류에서Dev

Microsoft Graph API를 사용하여 팀에 앱을 추가 할 수 없습니다.

분류에서Dev

git을 사용하여 github에 폴더를 추가 할 수 없습니다.

분류에서Dev

CocoaPods를 사용하여 Parse를 추가 할 수 없습니다.

분류에서Dev

linq2db를 사용하여 사용자 정의 열을 추가 할 수 있습니까?

분류에서Dev

Windows 8 또는 10의 특정 창에서 pywinauto를 사용하여 버튼을 클릭 할 수 없음

분류에서Dev

다른 함수의 함수에서 변수를 사용할 수 없습니다.

분류에서Dev

pytesseract를 사용하여 이미지의 특정 부분에서 텍스트를 추출 할 수 있습니까?

분류에서Dev

scale_x_discrete를 사용하여 내 ggplot의 x 축에 레이블을 추가 할 수 없습니다.

분류에서Dev

각도 2에서 사용자 지정 파이프를 사용하면 HTML로드시 데이터를로드 할 수 없습니다. 오류가 발생하여 정의되지 않은 속성을 읽을 수 없습니다.

분류에서Dev

특정 행의 df 열에 람다 함수를 적용 할 수 있습니까?

분류에서Dev

Applescript를 사용하여 창 크기를 조정할 수 없습니다.

분류에서Dev

함수 호출 mult (); 내에서 cin을 사용할 수 있습니까? 사용자가 2 개의 정수를 입력 할 수 있도록하려면?

분류에서Dev

react-navigation-stack을 사용하여 다른 구성 요소에 대한 사용자 정의 헤더로 클래스 구성 요소를 사용할 때 "클래스를 함수로 호출 할 수 없습니다"오류가 발생합니다.

분류에서Dev

역할에 사용자를 추가 할 수 없습니다.

Related 관련 기사

  1. 1

    부모 클래스 포인터를 사용하여 벡터에 추가 할 때 하위 클래스 특정 함수를 사용할 수 없습니다.

  2. 2

    Python의 Beautiful Soup을 사용하여 특정 span 태그에서 텍스트를 추출 할 수 없습니다.

  3. 3

    Parse.com-특정 사용자를 역할에 추가 할 수 없습니다.

  4. 4

    jquery 또는 javascript를 사용하여 행의 특정 td에 데이터를 추가 할 수 있습니까?

  5. 5

    강력한 매개 변수를 사용하여 Rails 4의 Devise 사용자 모델에 사용자 정의 필드를 추가 할 수 없습니다.

  6. 6

    사용자 정의 된 탐색 창에서 단추의 텍스트를 설정할 수 없습니다.

  7. 7

    R의 웹 스크래핑 | rvest를 사용하여 특정 노드에서 정보를 추출 할 수 없습니다.

  8. 8

    WAMP 서버의 localhost를 사용하여 PHP에 특정 이미지를 표시 할 수 없습니다.

  9. 9

    PHP를 사용하여 내 SQL에 연결할 수 없습니다. 정의되지 않은 함수 mysql_connect ()

  10. 10

    정규식 추출을 사용하여 헤더 내의 URL에서 GUID를 추출 할 수 없습니다.

  11. 11

    POST 메서드를 사용하여 데이터베이스에 새 정보를 추가 할 수 없습니다.

  12. 12

    .NET SDK를 사용하여 TaxService를 QBO에 추가 할 수 없습니다.

  13. 13

    추가하기 전에 JTextArea의 텍스트를 설정할 수 없습니다.

  14. 14

    mvc4를 사용하여 jquery의 테이블에 데이터를 추가 할 수 없습니다.

  15. 15

    Meteor에서 계정 패키지를 사용하여 이메일을 추가 할 수 없습니다.

  16. 16

    Microsoft Graph API를 사용하여 팀에 앱을 추가 할 수 없습니다.

  17. 17

    git을 사용하여 github에 폴더를 추가 할 수 없습니다.

  18. 18

    CocoaPods를 사용하여 Parse를 추가 할 수 없습니다.

  19. 19

    linq2db를 사용하여 사용자 정의 열을 추가 할 수 있습니까?

  20. 20

    Windows 8 또는 10의 특정 창에서 pywinauto를 사용하여 버튼을 클릭 할 수 없음

  21. 21

    다른 함수의 함수에서 변수를 사용할 수 없습니다.

  22. 22

    pytesseract를 사용하여 이미지의 특정 부분에서 텍스트를 추출 할 수 있습니까?

  23. 23

    scale_x_discrete를 사용하여 내 ggplot의 x 축에 레이블을 추가 할 수 없습니다.

  24. 24

    각도 2에서 사용자 지정 파이프를 사용하면 HTML로드시 데이터를로드 할 수 없습니다. 오류가 발생하여 정의되지 않은 속성을 읽을 수 없습니다.

  25. 25

    특정 행의 df 열에 람다 함수를 적용 할 수 있습니까?

  26. 26

    Applescript를 사용하여 창 크기를 조정할 수 없습니다.

  27. 27

    함수 호출 mult (); 내에서 cin을 사용할 수 있습니까? 사용자가 2 개의 정수를 입력 할 수 있도록하려면?

  28. 28

    react-navigation-stack을 사용하여 다른 구성 요소에 대한 사용자 정의 헤더로 클래스 구성 요소를 사용할 때 "클래스를 함수로 호출 할 수 없습니다"오류가 발생합니다.

  29. 29

    역할에 사용자를 추가 할 수 없습니다.

뜨겁다태그

보관