Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Anonymous
Not applicable

Migración de una consulta SQL a Power Bi (tasas de retención)

Hola a todos. Comencé a migrar algunos informes de Excel a Power BI y uno de ellos era la tasa de retención.

Fue escrito en SQL y básicamente tengo una tabla con toda la información que quiero. El código SQL para generar este informe es algo como esto:

IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='#TotalOrders' and xtype='U')
	CREATE TABLE #TotalOrders 
	(
	email VARCHAR(50),
	orderdatetime VARCHAR(50),
	shippingcountry VARCHAR(50),
	orderreference VARCHAR(50),
	fraudulent BIT
	)

INSERT INTO #TotalOrders
SELECT email, orderdatetime,shippingcountry,orderreference,fraudulent FROM ORDERS

GO

DECLARE @date AS Date
DECLARE @months AS INTEGER
-----------------------------
SET @date = CONVERT(DATETIME, '2020-08-01')
SET @months = -1

SELECT @date AS 'Date',
COUNT( distinct total.email) AS total,
COUNT( distinct retained.email) AS retained,
SUBSTRING(CAST(ROUND((1.0 * COUNT( distinct retained.email))/ (1.0 * COUNT( distinct total.email)
),4)*100 AS VARCHAR(20)),0,6) + '%' AS pcn

FROM #TotalOrders AS total
LEFT JOIN #TotalOrders AS retained
ON ( total.email = retained.email AND 
CONVERT(datetime,retained.orderdatetime, 103) BETWEEN DATEADD(Month,@months,@date)
AND @date AND retained.fraudulent = 0)

WHERE (CONVERT(datetime, total.orderdatetime, 103) BETWEEN 
	DATEADD(Month,2*@months,@date) AND DATEADD(Month, @months,@date))
	AND total.fraudulent = 0

DROP TABLE #TotalOrders

Y el resultado es algo como esto:

Fecha total retenida pcn

2020-08-01 19354 1618 8.360%

Explicando el código SQL, tenemos 2 variables, una para la fecha y los meses.

Por lo tanto, en este ejemplo, recibimos los correos electrónicos de los pedidos de junio (meses * 2) y registramos en julio (meses) cuántos clientes compraron de nuevo.

Si la variable de meses era -2 iríamos 2 meses antes de agosto (abril y mayo) y comprobamos en junio / julio cuántos correos electrónicos se repiten.

¿Cómo puedo crear algo similar a esto con DAX? Sé que tiene capacidades excepcionales, pero todavía me estoy acostumbrando a toda la sintaxis y los métodos.

El modelo de Power BI tiene los mismos nombres y para las variables, la fecha sería MIN(date) - que obtendrá el primer día del mes) y para los meses variables que estoy pensando en usar un parámetro.

¡Apreciamos a todos los que podrían echarme una mano con esto! ¡Que tengan un buen día a todos!

5 REPLIES 5
Anonymous
Not applicable

Gracias, los dos. El archivo pbix se puede descargar aquí.

Básicamente, este archivo de ejemplo solo tiene la fecha en que se realizó el pedido y el correo electrónico del usuario (que se ha hash). También hay una columna llamada frauduent, que debe ser filter como 0, bastante simple.

Una vez más, gracias por su ayuda chicos!

No utilice una jerarquía de fechas en el campo orderdatetime. En su lugar, cree una columna calculada que solo tenga el valor de fecha de orderdatetime y, a continuación, agregue una tabla de calendario adecuada que contiene la granularidad necesaria (día, mes, etc.)

Fecha De Pedido - DATEVALUE(test[orderdatetime])
Calendario : CALENDARAUTO()
Mes - MES('Calendario'[Fecha])
lbendlin_0-1599581046034.pnglbendlin_0-1599581221516.png

Anonymous
Not applicable

Hola lbendlin.

Arreglé mi archivo de muestra. En realidad, nuestro archivo original tiene la tabla de datos como usted dijo y me había olvidado de crear la misma tabla en esta. El archivo de enlace es el mismo y se puede descargar aquí.

Realmente espero que ustedes pueden ayudarme en cómo construir la tasa de retención!

v-diye-msft
Community Support
Community Support

Hola @alex_j

Podrías considerar proporcionar tu psídix ficticio que sería útil para nosotros investigarlo más a fondo.

Puede cargarlo en onedrive para la empresa y compartir el enlace aquí. por favor, no se olvide de revelar los resultados esperados y eliminar la información confidencial.

Community Support Team _ Dina Ye
If this post helps, then please consider Accept it as the solution to help the other members find it more
quickly.
lbendlin
Super User
Super User

proporcione datos de muestra en formato utilizable y muestre el resultado esperado.

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

AugPowerBI_Carousel

Power BI Monthly Update - August 2024

Check out the August 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors