SQL:跨列查找分位数

SQL:跨列查找分位数,sql,hive,Sql,Hive,这里有一个简单的。我的销售表如下所示: store_id industry_code sales_person_1 sales_person_2 ... sales_person_n 1 1000 20.75 15.50 ... 100 2 2000 15.54 16.84 ...

这里有一个简单的。我的销售表如下所示:

store_id   industry_code   sales_person_1  sales_person_2  ... sales_person_n
       1            1000            20.75           15.50  ...            100
       2            2000            15.54           16.84  ...            125

假设我想找出
store\u id=1
的销售人员2属于哪个分位数。我知道我可以使用一个窗口函数
ntile(5)OVER(partitionbyorderbysum(\uuuu)DESC)
将一列划分为5个bucket,并使用它来识别任意值属于哪个bucket。跨列而不是在列中执行此操作的最佳方法是什么?

您可以做的是将列分解为几行:

select t.store_id, 
       t.industry_code, 
       s.val
  from test_table t
  lateral view explode(array(sales_person_1, sales_person_2, ..., sales_person_n)) s as val
然后才使用
ntile


查看蜂巢文档。

没有好办法。最好的方法是将带有值的数据存储在单独的行中,而不是列中。