Esta ley se puede aplicar a una gran variedad de fuentes de datos: facturas de electricidad, direcciones de calles, precios de acciones, cifras de población, tasas de mortalidad, longitud de los ríos o constantes físicas y matemáticas. Se ha aplicado en la detección de fraudes en contabilidad, resultados electorales y científicos.
Ejemplo
Queremos calcular la frecuencia relativa del campo Cargo de la tabla Pedidos de la base de datos Neptuno. El resultado final es una tabla con los dígitos, su frecuencia absoluta, el total de registros y la frecuencia porcentual.
Solución 1
En dos pasos:
- Consulta intermedia (qry_Total): calcula el total de registros de la tabla cuyo último dígito del campo Cargo es mayor que cero.
- Consulta final (qry_BenfordLaw) que calcula la frecuencia relativa usando el total de la consulta anterior.
SELECT COUNT(Pedidos.Cargo) AS Total FROM Pedidos WHERE (((Mid([Cargo],1,1))>0));
SELECT Mid([Cargo],1,1) AS Dígito, COUNT(Pedidos.Cargo) AS Frecuencia, qry_Total.Total, COUNT([Pedidos]![Cargo])/[Total] AS Porcentaje FROM Pedidos, qry_Total GROUP BY Mid([Cargo],1,1), qry_Total.Total HAVING (((Mid([Cargo],1,1))>0));
Solución 2
Creando una subconsulta evitando la consulta intermedia.
SELECT Mid([Cargo],1,1) AS Dígito, COUNT(Pedidos.Cargo) AS Frecuencia, (select count([Cargo]) FROM Pedidos WHERE (((Mid([Cargo],1,1))>0))) AS Total, Count([Pedidos]![Cargo])/[Total] AS Porcentaje FROM Pedidos GROUP BY Mid([Cargo],1,1) HAVING (((Mid([Cargo],1,1))>0));La subconsulta es idéntica a la consulta intermedia (qry_Total) que realizamos en la solución 1.
(SELECT COUNT([Cargo]) FROM Pedidos WHERE (((Mid([Cargo],1,1))>0))) AS Total
Referencias
No hay comentarios:
Publicar un comentario