Les données ressemblent à:
Measure Value Date -------------------------------- 1 2.3 2016-01-01 1 2.5 2016-01-02 1 2.6 2016-01-03 2 1.2 2016-01-01 2 1.3 2016-01-02 2 1.4 2016-01-03
Je veux séparer la colonne Valeur en 2 colonnes en fonction des mesures
La sortie finale devrait ressembler à
Date Value_Measure_1 Value_Measure_2 --------------------------------------------------------------------- 2016-01-01 2.3 1.2 2016-01-02 2.5 1.3 2016-01-03 2.6 1.4
La seule façon que je peux find est l'auto-adhésion.
Y a-t-il une autre méthode qui pourrait le faire mieux?
Je vous remercie!
Si vous n'avez qu'une seule ligne par date et par mesure, vous pouvez le faire de la façon suivante:
select Date, max(case when Measure = 1 then value end) as Value_Measure_1 max(case when Measure = 2 then value end) as Value_Measure_2 from yourtable group by Date
Utiliser l'agrégation conditionnelle:
SELECT t.date, MAX(CASE WHEN t.Measure = 1 THEN t.Value END) as val_meas_1, MAX(CASE WHEN t.Measure = 2 THEN t.Value END) as val_meas_2 FROM YourTable t GROUP BY t.date
Je vais vous suggérer d'utiliser la fonction pivot avec du T-SQL.