環境:Hadoop(HDFS)
言語:hive
以下、t1というテーブルが存在しているとします。
DESC t1;
name STRING →重複あり
sales_cate STRING
sales_price INT
・t1:データ例
name sales_cate sales_price
sato shirts 100
sato pants 100
sato pants 200
suzuki shirts 200
suzuki blouse 300
kato sweater 200
t1において、nameごとの売上件数(nameの行が何行あるか)カラムを追加する方法を教えてください。
・期待する結果
name sales_cate sales_price sales_count
sato shirts 100 3
sato pants 100 3
sato pants 200 3
suzuki shirts 200 2
suzuki blouse 300 2
kato sweater 200 1
私はこれまでは、以下のように一度COUNTをSELECTした結果をテキストに出力させてから、
新規で作成したt2テーブルにLOADし、
さらに新規で作成したt3テーブルにt1とt2をJOINした結果を
INSERT OVERWRITEするという方法をとっていましたが、
恐らくこんなまどろっこしいやり方をする必要はないのでは、と考えています。。
SELECT
name
,COUNT(DISTINCT name)
FROM
t1
GROUP BY
name
count_output.txt
※
なんでこんなカウントカラムが必要なのかとつっこみをうけそうですが、
あくまでダミーデータとお考えください。。
イメージ的に、売上件数を閾値として何件以上の社員を抽出する、ようなことをしたいですが、
閾値は現時点では未定のため変動させられるように、
テーブルのカラムとして保持したいと考えています。
初心者ですみませんが、ご教授いただけます様よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/28 16:30
2018/05/29 00:06