(第一篇文章对不起,我做错了什么)
我想扁平化一些规范化的数据,我有我的斗争与交叉表功能。
背景资料:
- 我在我的pgsql数据库中导入了一个包含历史钻井数据的文件(我是地质学家)。下面是标题的屏幕截图。你可以看到它是平面数据。表名= wadl4_a117888 Historic data headers
因为我将不得不导入其他具有不同标题但类似数据的历史数据集(例如:来自文件A的litho 1和来自文件B的geol 1)。我想'翻译/标准化'的标题,并有所有的数据在一起。
- 因此,我使用视图对数据进行了规范化。表视图名称= tblvw_wadl4_a117888_norm historic data normalized。注意:'pfield' =透视字段,'pvalue' =透视值
- 然后,我'翻译'的历史标题到想要的。'field_sgq' =需要的报头。
translation table:
现在我想把这张table压平(见上一张截图)。将字段datasource、hole_ID、depth_from、depth_to保持为“键”。
最终结果:final result。
我尝试使用case when为每个想要的header,但为同一个“key”创建了多行(holeid,depth_from,depth_to)。还尝试使用交叉表功能,但没有获得想要的结果。
谢谢你的帮助!干杯
1条答案
按热度按时间jvlzgdj91#
以下是示例代码,您可以修改它,因为它不包括您可能拥有的所有可能的列。我使用field_orig列而不是field_sgq列,因为它在屏幕截图中显示的示例数据中具有空值。