Tuesday, 7 November 2017

7 Day Moving Average In Sql


Estoy trabajando con SQL Server 2008 R2, tratando de calcular un promedio móvil. Para cada registro en mi vista, me gustaría recopilar los valores de los 250 registros anteriores, y luego calcular el promedio para esta selección. Mis columnas de vista son las siguientes: TransactionID es único. Para cada TransactionID. Me gustaría calcular el promedio para el valor de la columna, más de 250 registros anteriores. Así para TransactionID 300, recopile todos los valores de 250 filas anteriores (la vista se clasifica descendiendo por TransactionID) y luego en la columna MovAvg escriba el resultado del promedio de estos valores. Estoy buscando para recopilar datos dentro de un rango de registros. 28 de octubre de 2008 a las 20:58 Bueno, por lo general, configurar algunos datos de prueba para jugar. Aquí hay algún código para crear una tabla de trabajo en tempdb. Estoy saltando los fines de semana. El total es un número aleatorio de 0 a 40. Esto se vuelve muy fácil en SQL SERVER 2012 con la nueva función de ventana LEAD (). Básicamente, damos un número de fila a cada fila, calculamos la suma de las filas 0 (actual) a la fila 4 (4 de distancia) y un recuento total. Dado que se trata de un total acumulado durante cinco períodos, las fechas restantes no tienen datos. Por lo tanto, los echamos fuera. Mi fila mi cnt -4 Espero que esto solucione su problema Si usted está cuidando solamente un número para el mes, cambie el selecto al siguiente. Dejé las otras filas para que puedas entender lo que está pasando. PARA SQL SERVER 2005 Al igual que cualquier cosa en este mundo, siempre hay una manera de hacerlo. Utilicé una pequeña tabla de recuento para realizar un bucle a través de los datos y recopilar conjuntos de 5 puntos de datos para promedios. Esta es una explicación de las expresiones comunes de tabla (CTE). Para grupos de cinco, calcule un promedio y muestre la fecha. Esta solución no depende de los días festivos o fines de semana. Si los datos están allí, sólo particiones por grupos de cinco orden por fecha. Si necesita filtrar los días festivos y los fines de semana, cree una tabla de vacaciones. Agregue una cláusula where para cte datos que comprueba NO IN (SELECT DATE FROM HOLIDAY TABLE). SQL Server ofrece la función datepart (wk.) Para obtener la semana del año. Desafortunadamente, utiliza el primer día del año para definir el año. En su lugar, puede encontrar secuencias de valores consecutivos y agruparlos: La idea es que sustraer una secuencia de números de una secuencia de días consecutivos produce una constante. También puede hacer esto usando una fecha canónica y dividiendo por 7: La fecha 2000-01-03 es un lunes arbitrario. Usted parece querer una media móvil de 5 días. Debido a que faltan datos para los fines de semana, avg () debería funcionar: DBAs (Database Administrators) realizan muchas tareas diferentes, y una forma de explicar lo que es un DBA es describir los tipos de tareas que realizan de forma regular. A continuación, se enumeran algunas de las tareas más comunes realizadas por el DBA medio, de A a Z. Una tarea emergente del DBA es identificar a qué usuarios están accediendo, insertando, actualizando o eliminando datos y cuándo. La auditoría sólo puede ser necesaria para períodos de tiempo limitados, para usuarios específicos, para datos muy específicos, o puede ser necesaria 24/7 para todos los datos. Al realizar esta tarea, los DBAs a menudo tienen que trabajar con los auditores internos y externos. Aunque la mayoría de las organizaciones utilizan aplicaciones de terceros, muy pocas de estas aplicaciones funcionan aisladamente. En otras palabras, las aplicaciones dispares tienen que hacerse para hablar entre sí, a menudo utilizando la base de datos como medio para compartir datos. DBAs a menudo se involucran en la búsqueda de la mejor manera de integrar las aplicaciones. Esto puede incluir la creación de aplicaciones personalizadas, secuencias de comandos Transact-SQL o paquetes SSIS. Copia de seguridad y recuperación Uno de los aspectos más fundamentales de los datos del DBA. Esto incluye hacer copias de seguridad periódicas de los datos y mantenerlo a salvo de la destrucción accidental o intencional. Además, se debe implementar y probar un plan de recuperación bien desarrollado para que cuando surjan problemas, los datos se puedan restaurar rápidamente. Business Intelligence / Data Warehousing Una de las áreas de crecimiento más rápido para el DBA es Business Intelligence (BI) y data warehousing. Esto se debe a que cada vez más organizaciones están buscando minar toda la información que pueden, con el fin de tomar mejores decisiones de negocios. En la mayoría de las organizaciones, el número y tamaño de las bases de datos crece rápidamente. Es responsabilidad del DBA vigilar el crecimiento de los datos y planificar la mejor manera de lidiar con él. Esto puede incluir archivarlo, aumentar el tamaño del hardware actual o agregar hardware nuevo. Las configuraciones de SQL Server, el esquema de base de datos, el código Transact-SQL y muchas otras facetas del ecosistema de aplicaciones, cambian con el tiempo. A menudo es responsabilidad del DBA realizar análisis de impacto antes de realizar cambios, implementar cambios, probar cambios y documentarlos. Desarrollo de aplicaciones de bases de datos Muchos DBA son realmente desarrolladores de aplicaciones que se especializan en escribir código para acceder directamente a SQL Server. Si bien esto se realiza más comúnmente utilizando Transact-SQL y procedimientos almacenados, puede implicar escribir otro código que se utiliza para obtener acceso a datos de SQL Server. Modelado de datos y diseño de bases de datos La base de todas las bases de datos eficaces y escalables es el diseño de una buena base de datos. Los DBA suelen crear diseños de bases de datos mediante la realización de análisis de necesidades / requerimientos, la creación de un modo lógico y la implementación del modelo físico. Desarrollo y mantenimiento de mejores prácticas Los DBA deben ser proactivos en su trabajo y una de las mejores maneras de ser proactivo es desarrollar buenas prácticas de base de datos y aplicarlas. Cuanto más organizadas y administradas sean las operaciones de la base de datos, más eficientes serán. Idealmente, las mejores prácticas de una organización serán documentadas para que todas las lean y sigan. Un DBA debe asegurarse de que sus bases de datos están disponibles para los usuarios cuando necesitan acceso a los datos. Hay muchas maneras diferentes de ayudar a garantizar la alta disponibilidad, incluyendo el uso del envío de registros, el agrupamiento, el reflejo de bases de datos y otras tecnologías. Instalación, configuración, revisión y actualización del software de SQL Server Una de las tareas de base de datos que requiere más tiempo es instalar, configurar, aplicar parches y actualizar instancias de SQL Server. Si bien la instalación y configuración de nuevas instancias es relativamente sencilla, puede llevar mucho tiempo. Instalación y configuración de hardware En algunas organizaciones, el hardware (el servidor y el subsistema de E / S) es manejado por técnicos de hardware dedicados. En otros, el DBA es responsable de construir, instalar y configurar su propio hardware. Además, los DBA también pueden realizar tareas frecuentes de solución de problemas de hardware y mantenimiento. Con el tiempo, la carga de las bases de datos individuales cambia. Los DBAs son responsables de supervisar las cargas de trabajo y de averiguar cómo maximizar los recursos de hardware para obtener el mejor rendimiento de SQL Server. Esto puede implicar mover una base de datos de un servidor ocupado a un servidor menos ocupado. También puede implicar consolidación o virtualización de servidores. Escribir y mantener la documentación es probablemente la tarea más aburrida y detestada que un DBA encontrará. Por muy aburrido que sea, sigue siendo una parte crítica del trabajo del DBA. Si no hay documentación, entonces no hay una manera fácil de reconstruir la infraestructura actual si se presentan problemas importantes. Un gerente necesita ser un aliado del DBA, no un enemigo. Es importante que un DBA desarrolle y mantenga buenas relaciones con su gerente, y con cualquier otro gerente en la organización con la que trabaje. Llegar con los gerentes hace que sea más fácil para los DBA para obtener los recursos que necesitan para tener éxito en su trabajo. Lo mismo es cierto para llevarse bien con otros gerentes, ya que muchos de ellos pueden controlar los recursos que necesitan los DBA para realizar sus tareas con éxito. Muchos DBAs se encuentran en posiciones gerenciales, como un DBA senior que está a cargo de DBAs junior. Algunos DBA de organizaciones grandes hacen esto a tiempo completo, mientras que otros combinan la gestión de personas con otros deberes de DBA. Administración de aplicaciones basadas en SQL Server A menudo, los administradores de bases de datos son responsables no sólo de la administración de SQL Server y de sus bases de datos, sino también de las aplicaciones que acceden a la base de datos. Estos varían según la organización, pero en algunos lugares el DBA termina gastando más tiempo en administrar aplicaciones que SQL Server. Mantenimiento de servidores y bases de datos SQL Server y las bases de datos que se ejecutan en ellos, necesitan mantenimiento periódico para poder ejecutar de manera eficiente. Los DBAs son responsables de asegurar que todo el mantenimiento se haga de manera oportuna. Administración de entornos de prueba En la mayoría de las organizaciones grandes, los administradores de bases de datos administran entornos de prueba que incluyen probar servidores SQL y bases de datos, así como probar aplicaciones de bases de datos. El propósito de esto es permitir que las bases de datos y las aplicaciones (tanto interna como de terceros) sean probadas antes de que se implementen nuevas versiones de SQL Server (incluidos parches y service packs), sistemas operativos o aplicaciones. Esta es una tarea de gran alcance que incluye muchas subtareas, como supervisar el rendimiento, supervisar el espacio en disco del servidor, supervisar los registros, garantizar que los trabajos se han ejecutado correctamente, comprobar los errores, etc. Si un DBA está involucrado en el desarrollo, o simplemente admite aplicaciones de terceros, a menudo realizan análisis de necesidades y requerimientos. Esto puede incluir hablar con los usuarios, averiguar sus necesidades y requisitos, y determinar la mejor manera de cumplir con ellos. Negociación de acuerdos de nivel de servicio En muchas organizaciones, los DBAs participan en la negociación de acuerdos de nivel de servicio (SLA). Un SLA es un acuerdo entre el cliente (el propietario de la aplicación empresarial que accede a las bases de datos de SQL Server) y el proveedor de servicios (el equipo DBA que administra las bases de datos). Este acuerdo establece los criterios que definen. Es tarea del DBA supervisar el rendimiento y determinar maneras de optimizar el rendimiento de la base de datos. A menudo, los DBAs se encontrarán a cargo de un gran proyecto que involucra a muchas otras personas. Esto podría implicar la escritura de una nueva aplicación interna o la gestión de la migración de un centro de datos de una ubicación a otra. Protector de los datos Aunque esto no es una tarea de trabajo específica, lo incluyo aquí porque subyace a muchos de los datos corruptos del DBA. Es muy común que los datos se muevan de un servidor a otro de forma regular. Un DBA suele investigar varias maneras en que los datos pueden ser replicados de servidor a servidor, decidir sobre el método más apropiado, implementar la replicación y luego administrarlo una vez que esté en funcionamiento. Con SQL Server Reporting Services, muchos DBA se encuentran escribiendo informes en bases de datos. Esto podría significar escribir el código de Transact-SQL para extraer los datos, o podría incluir la creación y el formato de informes físicos. Virtualmente cada SQL Server tiene trabajos que se ejecutan en él periódicamente. Estos trabajos pueden incluir copias de seguridad, importaciones o exportaciones de datos o reconstruir índices. Los DBAs son responsables de determinar qué trabajos son necesarios, crear los trabajos y administrarlos. Los DBAs controlan quién puede acceder a los datos y qué pueden hacer con él. Esto implica crear ID de inicio de sesión de SQL Server, ID de base de datos, asignar permisos, mover seguridad entre servidores e incluso implementar cifrado de datos. Los DBA a menudo escriben sus propios scripts de Transact-SQL para realizar una amplia gama de tareas, incluidas las tareas de supervisión y mantenimiento. Además, con la llegada de PowerShell, muchos DBA están escribiendo scripts de PowerShell para mejorar su productividad. Una tarea muy común es mover los datos dentro y fuera de las bases de datos y al mismo tiempo realizar algunas transformaciones en los datos a medida que se mueve. Esto se realiza a menudo para aplicaciones de BI, almacenes de datos e integración de aplicaciones. SQL Server Integration Services (SSIS) es una herramienta popular que los DBA utilizan para implementar operaciones de exportación / transformación / carga (ETL) en SQL Server. DBAS realizar todo tipo de pruebas, todo el tiempo. Esto puede incluir probar servidores, probar bases de datos, probar aplicaciones, probar herramientas de administración, etc. DBAs prueba porque quieren asegurarse de que lo que hacen va a funcionar, y que la integridad de los datos y alta disponibilidad, se mantiene en todo momento. A menudo, los DBA necesitan compartir sus conocimientos con otros DBA, desarrolladores o usuarios finales. Prácticamente todos los días, los DBA están solucionando problemas de un problema u otro. En muchos casos, cuando se produce un problema, se espera que el DBA se concentre en resolver el problema en cuestión. Muchas aplicaciones basadas en SQL Server son proporcionadas por terceros, por lo que el DBA a menudo se involucra con el mantenimiento de relaciones con estos proveedores de terceros. El DBA generalmente realizará la instalación inicial del software de terceros, solucionará problemas y actualizará la aplicación y su base de datos cuando se implementen nuevas versiones. Trabajo con compañeros de equipo Rara vez un DBA trabaja solo. En la mayoría de los casos, los DBAs estarán interactuando con un grupo muy grande de personas, incluyendo otros DBA, desarrolladores, usuarios finales, especialistas en productos, vendedores, contadores, expertos en hardware y expertos en redes. Si bien esto puede parecer una lista larga, es sólo la punta del iceberg cuando se trata de describir las muchas tareas del Administrador de base de datos. Si usted es un DBA y le gustaría añadir a esta lista, por favor hágalo en la sección de comentarios de abajo.

No comments:

Post a Comment