Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Estoy comprobando el índice que falta en mi consulta y, si es así, omito la fila en SQL. Pero debido a que hay demasiadas comprobaciones, la consulta tarda mucho tiempo y recibe un error de tiempo de espera en Power Query. Mi consulta SQL
SELECT em.EqmmspvDate,
em.EqmmspvEqmId,
em.EqmmspvValue,
em.Rownumber,
em.t
FROM (
SELECT e.[eqmmspveqmid],
e.[eqmmspvdate],
e.[eqmmspvvalue],
e.t,
e.rownumber,
Lag(e.rownumber, 1, 0)
OVER(
partition BY [eqmmspveqmid]
ORDER BY Min(Datediff(hh, [eqmmspvdate], Getdate())) DESC)
AS
'previuos_rownumber'
FROM (SELECT Row_number()
OVER(
partition BY [eqmmspveqmid]
ORDER BY Min(Datediff(hh, [eqmmspvdate], Getdate())) DESC) AS
Rownumber,
[eqmmspveqmid],
[eqmmspvdate],
Lag(eqmmspvvalue, 1, 0)
OVER(
partition BY [eqmmspveqmid]
ORDER BY Min(Datediff(hh, [eqmmspvdate], Getdate())) DESC) AS
'previuos_kilometerage',
Lead(eqmmspvvalue, 1, 0)
OVER(
partition BY [eqmmspveqmid]
ORDER BY Min(Datediff(hh, [eqmmspvdate], Getdate())) DESC) AS
'next_kilometerage',
Max(Max(eqmmspvvalue))
OVER(
partition BY [eqmmspveqmid]
ORDER BY Min(Datediff(hh, [eqmmspvdate], Getdate())) DESC) AS
'Last_value',
eqmmspvvalue,
[eqmmspvdifference] AS t
FROM [ULTIMO].[dba].[equipmentmspvalue] AS e
WHERE e.eqmmspvrecstatus = 2
AND e.[eqmmspvmspid] = 'DEFAULT'
GROUP BY [eqmmspveqmid],
eqmmspvdate,
[eqmmspvvalue],
[eqmmspvdifference]
) AS e
INNER JOIN #temp AS te
ON te.rownumber = e.rownumber
WHERE e.EqmmspvValue >= e.previuos_kilometerage
GROUP BY e.[eqmmspveqmid],
e.[eqmmspvdate],
e.eqmmspvvalue,
e.t,
e.rownumber) as em
WHERE em.previuos_rownumber + 1 = em.Rownumber
AND previuos_rownumber <> 0
El bottelneck está aquí :
Lag(e.rownumber, 1, 0)
OVER(
partición BY [eqmmspveqmid]
PEDIDO POR Min(Datediff(hh, [eqmmspvdate], Getdate())) DESC)
Como
'previuos_rownumber'
¿Podemos hacer lo mismo en Dax?
saludos
Ezz
@Ezz , Difícil de decir mirando SQL.
¿Puede compartir datos de ejemplo y salida de ejemplo en un formato de tabla?
Pero Rank y Earlier pueden ayudar
Para rango Consulte estos enlaces
https://radacad.com/how-to-use-rankx-in-dax-part-2-of-3-calculated-measures
https://radacad.com/how-to-use-rankx-in-dax-part-1-of-3-calculated-columns
https://radacad.com/how-to-use-rankx-in-dax-part-3-of-3-the-finale
https://community.powerbi.com/t5/Community-Blog/Dynamic-TopN-made-easy-with-What-If-Parameter/ba-p/3...
https://powerpivotpro.com/2012/03/the-correct-usage-of-earlier/
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |