0

私は Vertica の MATCH 句を使用しています。Vertica SQL リファレンス マニュアルでは、「イベント パターンを検索して大量の履歴データをスクリーニングできる SQL 拡張機能です。MATCH 句は、分析的なパーティション分割と順序付けのサブクラスを提供し、定義したパターンに基づく結果テーブル。」

Programmer's Guide の例では、RESULTS ALL ROWS例に次のようなフレーズがあります。

SELECT uid,
       sid,
       ts,
       refurl,
       pageurl,
       action,
       event_name(),
       pattern_id(),
       match_id()
FROM clickstream_log
MATCH
  (PARTITION BY uid, sid ORDER BY ts
   DEFINE
     Entry AS RefURL NOT ILIKE '%website2.com%' AND PageURL ILIKE '%website2.com%',
     Onsite AS PageURL ILIKE '%website2.com%' AND Action='V',
     Purchase AS PageURL ILIKE '%website2.com%' AND Action = 'P'
   PATTERN
     P AS (Entry Onsite* Purchase)
   RESULTS ALL ROWS);

しかし、私は何をするかの定義を見つけることができませんRESULTS ALL ROWS。気がかりなことに、それは出力に影響を与えますが、微妙な方法です。(つまり、違いを見つけるにはかなりの数の行が必要です。)

このフレーズが実際に何をするか知っている人はいますか?

4

1 に答える 1

1

それはレガシーステートメントだと思います。v6.1 では、 ROW MATCH (ALL EVENTS | FIRST EVENT)に置き換えられました。

1 つの行に対して true と評価される複数のイベントを解決する方法を定義します。

ROWS MATCH ALL EVENTS (デフォルト) を使用する場合、1 つの行に対して複数のイベントが true と評価されると、HP Vertica は次の実行時エラーを返します。

エラー: パターン イベントは相互に排他的でなければなりません

ヒント: ROWS MATCH FIRST EVENT を使用してみてください ROWS MATCH FIRST EVENT の場合、1 つの行に対して複数のイベントが true と評価される場合、HP Vertica は、SQL ステートメントで最初に定義されたイベントを、その行に使用するイベントとして選択します。

于 2013-09-21T12:21:41.623 に答える