2017-07-11 1 views
-1

Je travaille sur le streaming de données à l'aide du travail d'analyse Azure Stream qui utilisera T SQL Query. J'avoir l'exigence suivante:Besoin d'aide dans T Requête SQL dans Azure Stream Analytics

je peux le faire en utilisant case et sum déclarations, mais je dois beaucoup de pays et questions (L3), donc est-il une option de pivot que je peux utiliser?

Répondre

0

Vous pouvez interroger à l'aide pivot comme ci-dessous:

Select * from (
    Select Co_nm, TimePeriod, CONCAT(L3, ISO_Cntry_Nm) as L3Country, [No of issues] 
     from #yourtable 
     ) a 
pivot (max([No of issues]) for L3Country in ([Issue 1Great Britain], [Issue 1India],[Issue 1America],[Issue 2Great Britain], [Issue 2India],[Issue 2America])) p 
+0

Merci pour cela, mais je n'ai pas de combinaisons de L3 et de pays, donc est-ce qu'il y a une approche comme le programme Shape in R, que je peux obtenir avec la formule? – Manoj

0

La manière la plus flexible utilise la collecte() pour obtenir une série d'événements, et le transmettre à un JavaScript UDF pour faire le pivot.

WITH EventCollection AS 
(
    SELECT collect() AS allEvents 
    FROM input TIMESTAMP BY timeperiod 
    GROUP BY System.Timestamp 
), 
PivotRecord AS 
(
    SELECT udf.getPivotRecord(allEvents) AS record 
    FROM EventCollection 
) 
SELECT record.* 
INTO output 
FROM PivotRecord 

Par exemple JavaScript UDF groupe chargé de traiter, voir ce billet de blog Using Azure Stream Analytics JavaScript UDF to lookup values in JSON array.

+0

Merci pour la solution mais, j'ai zéro connaissance sur JAVA, donc ce serait mieux si j'utilise T sql, je cherche la fonction SImilar comme CAST dans le programme R mais dans TSQL – Manoj