sql—获取列的名称,该列对应的行中有一个变量

bzzcjhmw  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(291)

我有一个查询,它的列从 Jan-14Dec-18 由SupplierID突出显示的行及其在相关时间段内的相应开销。我试图创建一个case语句,当它不等于0时,它将告诉我第一个月的开销。我提供了一个例子,说明我所拥有的以及我正在努力让它看起来像是什么:
有人能帮忙吗?

Supplier ID Jan-14 Feb-14 Mar-14 Apr-14....Dec-18 FirstMonthSpend

00001         0      0     $10      0        0         Mar-14

00002         0     $10      0      0        0         Feb-14

提前多谢了!
我还提供了一个截图的数据和专栏,我希望创造黄色。
在此处输入图像描述

kokeuurv

kokeuurv1#

你可以用一个巨人 case 表达式:

select supplierId,
       (case when "Jan-14" > 0 then 'Jan-14'
             when "Feb-14" > 0 then 'Feb-14'
             . . .
        end) as first_month
from t;

请注意,数据的表示方式不好。每个供应商和每个月都应该有一行。如果有这样的数据模型,查询就会简单得多。

相关问题