私は質問で構成されたドメインモデルを持っています。各質問は多数のコメントと確認に関連しています。データ集計:ゼロカウントで結果を失うことなく関連するエンティティをカウントする
ノーコンテンツの束が各質問、ならびにこれらの関係は(例えば、いくつかの質問には一切コメントしていないか、または空の場合を含め、関連するコメントと断言数、属性抽出Datalog queryをしたいと思い肯定)、返されるカウントは、私は関係が空のときにゼロカウントを取得するために(sum ...)
と「重量」変数と組み合わせ(or-join)
を使用する方法を示しており、以下のGistを見てきました0
する必要があり、その場合、 。
ただし、2つの関係がある場合には、この作業を行う方法はわかりません。私は、次を試してみましたが、返された数が正しくありません:
(def query '[:find (sum ?comment-weight) (sum ?affirmation-weight) ?text ?time ?source-identifier ?q
:with ?uniqueness
:where
[?q :question/text ?text]
[?q :question/time ?time]
[?q :question/source-identifier ?source-identifier]
(or-join [?q ?uniqueness ?comment-weight ?affirmation-weight]
(and [?comment :comment/question ?q]
[?affirmation :affirmation/question ?q]
['((identity ?comment) (identity ?affirmation)) ?uniqueness]
[(ground 1) ?comment-weight]
[(ground 1) ?affirmation-weight])
(and [?comment :comment/question ?q]
[(identity ?comment) ?uniqueness]
[(ground 1) ?comment-weight]
[(ground 0) ?affirmation-weight])
(and [?affirmation :affirmation/question ?q]
[(identity ?affirmation) ?uniqueness]
[(ground 1) ?affirmation-weight]
[(ground 0) ?comment-weight])
(and [(identity ?q) ?uniqueness]
[(ground 0) ?comment-weight]
[(ground 0) ?affirmation-weight]))])
はもともとClojuriansスラックに尋ねました。
この作品。ありがとうございました!私はまだそれが動作する理由について完全にはっきりしていません。私は、それぞれの最初の試合を返すという印象を受けていましたか?それとも、コメント/質問と肯定/疑問がある場合、コメントだけが数えられるのでしょうか?私はまだ私はgrokkingしていないと思う:仕事と – DizzyDez
いいえ、または結合組合 - ブール値としてではないと思うまたは –