質問: 環境: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 ※ なんでこんなカウントカラムが必要なのかとつっこみをうけそうですが、 あくまでダミーデータとお考えください。。 イメージ的に、売上件数を閾値として何件以上の社員を抽出する、ようなことをしたいですが、 閾値は現時点では未定のため変動させられるように、 テーブルのカラムとして保持したいと考えています。 初心者ですみませんが、ご教授いただけます様よろしくお願いいたします。
回答: ``` select * ,(select count(*) from t1 where name_id=main.name_id) as sales_count from t1 as main ```