我有一些按五分位数标签(-1、1、2、3、4、5)组织的数据。对于一列中的每个Quintile
值,在另一列中都有一个名为 的值ret
。最后,有一列以整数形式包含月末日期的日期。
我的目标是同时可视化所有 Quintile 返回的数据,每个数据都作为自己的列,只有日期列充当索引。
本质上,我想以该列为Quintile
中心,并且我看到其他地方建议IF
在 MySQL 中使用语句作为实现此目的的一种方式。
例如,下面的查询将显示一个 Quintile 的数据价值:
select yearmonth, ret
where Quintile=1
from quintile_returns
但我不想对所有 Quintile 标签重复此操作,单独保存数据,然后在 Python Pandas 或 Excel 中将其拼凑在一起。我想让 SQL 将其显示为不同的列。
但是当我尝试这种IF
语句风格的穷人的支点时,这是我使用的查询:
select yearmonth,
IF(Quintile=1, ret, NULL) as Q1_ret,
IF(Quintile=2, ret, NULL) as Q2_ret
from quintile_returns
我基本上得到了有效数据的对角线。Quintile 不是 1 的所有行仍然显示,填充为 NULL,然后对于 Quintile 2 以此类推。
如何避免所有这些额外的 NULL 值?基本上,我想告诉 SQL只有在满足条件时才返回列的值,并且不要使用 NULL 或其他任何东西作为默认的类似else
占位符。
有没有一种不涉及嵌套连接类型语句的方法?