1

次のスキーマを持つハイブにテーブルがあります (差分 int、count_value int) 値は 5 2、30 1、90 1、100 1 です

ここで、count_value の合計で各 count_value のパーセンテージを見つけたいと思います。各行の count_value/sum(count_value) のようなもの。誰でも助けてください。前もって感謝します

4

2 に答える 2

4

Hive 0.11 で導入された新しい分析機能とウィンドウ機能を使用すると、次のことができます。

SELECT count_value / sum(count_value) over () as p from myTable

これにより、結合が回避され、別のフィールドで分割された場合に計算が簡単になります。たとえば、ソース テーブルにkeyフィールドがあり、同じ を持つ行の合計を計算に使用する場合は、次のkeyようにします。

SELECT count_value / sum(count_value) over (partition by key) as p from myTable
于 2013-09-20T14:55:15.143 に答える
3

サブクエリを使用して最初に合計を計算し、次に合計を各行に結合するのはどうですか?

SELECT
    count_value / count_value_sum AS p
FROM
    myTable t
JOIN
    (SELECT SUM(count_value) AS count_value_sum FROM myTable) s

それが役立つことを願っています。

于 2013-09-19T10:16:26.490 に答える