2016-12-28 5 views
0

徹底的なGoogleの調査で、Vertica DBはcount(distinct)over()をサポートしていないようです: "ERROR 4249:MIN/MAX DISTINCTを使用することを許可されています... MIN/MAXはDISTINCTを使用することができます "VerticaのAnalytical Count(distinct)を使用することはサポートされていません

私はこれを簡単に回りたいと考えています。

一方、私はジョインまたはネストされたクエリを使用しています。例えば

select campaign_id, segment_id, COUNT(DECODE(rank, 1, 1, NULL)) over() 
    from (select campaign_id, segment_id, row_number() over(partition by segment_id) rank 
      from cs) 

しかし、私のクエリは非常に長いです、私はすべての道上のトリックを考案する必要があります。より良いアプローチのための任意のアイデア?

ありがとうございます!

(あなたはすべての一般的な分析funcitionsために行ったようHPEで働く?、これを実装してください!)

+0

解決策は問題ありません。つまり、私は 'decode'を使わないでしょうが、それは問題に対する非常に合理的な解決策です。 –

答えて

0

私は日付の範囲に渡って、累積的に個別の値をカウントするために何か似てネストされたカウント構造をしなければなりませんでした。私はケースを使用けれどもそれは、ROW_NUMBER()= 1行の類似の収集までに煮詰め:

COUNT(CASE WHEN rank = 1 THEN userID END) OVER (...) 

見てきれいではありませんでしたが、それは幸いに遅くありませんでした。私はすべての

道上のトリックを考案する必要が

ええ、私はあなたが不足している機能にぶつかるときだけ起こると思います。

関連する問題