【问题标题】:Multiple Pivots SQL SERVER 2008 on multiple columns多列上的多个枢轴 SQL SERVER 2008
【发布时间】:2015-10-22 17:52:11
【问题描述】:

这是我当前的数据集

select sampleId, plateID, target, confidence, zscore from Observations


sampleId   ||   plateID   ||    target   || confidence ||  zscore
-----------------------------------------------------------------
FR08512332 ||   13053620  ||    I6-2D6   ||  < 0.50    ||   0.84
FR08512332 ||   13053620  ||    E9-2D6   ||  > 0.99    ||   0.05
FR08512332 ||   13053620  ||    I2-2D6   ||    0.99    ||   0.23

这是我在一次折叠置信度列后的数据集

SELECT *
FROM
(
SELECT sampleId, plateID, target, confidence, zscore
from Observations
) S
PIVOT( max(confidence) for target IN ([E9-2D6],[I6-2D6],[I2-2D6])) As confidence


sampleId   ||   plateID   ||  Zscore  ||   e9   ||   i6   ||   i2
-------------------------------------------------------------------
FR08512332 ||   13053620  ||  0.02    || > 0.99 ||  NULL  ||  NULL
FR08512332 ||   13053620  ||  0.25    ||  NULL  ||  NULL  ||  0.99
FR08512332 ||   13053620  ||  0.13    ||  NULL  || < 0.55 ||  NULL

这是我想要达到的结果

sampleId  || plateID  || conf-e9 || conf-i6 || conf-i2 || z-e9 || z-i6 || z-i2
-------------------------------------------------------------------------------------
FR08512332|| 13053620 || > 0.99  || < 0.55  ||  0.99   || 0.02 || 0.25 || 0.13

【问题讨论】:

  • 多使用一个聚合
  • 我对枢轴相当陌生,如何去做呢?谢谢!
  • targets 的数量总是固定的吗?
  • 是的,只有 3 个目标

标签: sql sql-server pivot


【解决方案1】:

您可以使用条件聚合(更容易理解)而不是pivot,因为目标数量是固定的。

Fiddle with sample data

select sampleid, plateid,
max(case when target = 'I6-2D6' then confidence end) as conf_i6,
max(case when target = 'E9-2D6' then confidence end) as conf_e9,
max(case when target = 'I2-2D6' then confidence end) as conf_i2,
max(case when target = 'I6-2D6' then zscore end) as z_i6,
max(case when target = 'E9-2D6' then zscore end) as z_e9,
max(case when target = 'I2-2D6' then zscore end) as z_i2
from observations
group by sampleid, plateid

【讨论】:

  • 出于学习目的,我将如何使用多个枢轴交替进行?谢谢
猜你喜欢
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-27
  • 2017-12-12
相关资源
最近更新 更多