martes, 2 de agosto de 2011

Métodos de discretización (minería de datos) en SQL Server Analysis Services

Creo que la mayoria que hemos hecho DataMining nos hemos encontrado con variable continuas que nos complican un poco cuando estamos en la etapa del preprocesamiento. La accion mas comun es la discretizacion que me hizo acuerdo a este grafico en SAS:

image

A continuacion se indicara el porque de la discretizacion y como lo plantea Microsoft en SQL SERVER Analysis Services.
Algunos de los algoritmos que se utilizan para crear modelos de minería de datos en SQL ServerAnalysis Services requieren tipos de contenido específicos para poder funcionar correctamente. Por ejemplo, el algoritmo Bayes naive de Microsoft no puede utilizar columnas continuas como entrada ni predecir valores continuos. Además, algunas columnas pueden contener tal cantidad de valores que el algoritmo no puede identificar con facilidad patrones de interés en los datos para crear un modelo a partir de los mismos.

En estos casos, puede discretizar los datos en las columnas de modo que pueda utilizar los algoritmos para producir un modelo de minería de datos. La discretización es el proceso mediante el cual los valores se incluyen en depósitos para que haya un número limitado de estados posibles. Los depósitos se tratan como si fueran valores ordenados y discretos. Puede discretizar tanto columnas numéricas como de cadena.

Pueden utilizarse varios métodos para discretizar datos. Si la solución de minería de datos usa datos relacionales, puede controlar el número de depósitos que se deben usar para agrupar los datos estableciendo el valor de la propiedad DiscretizationBucketCount. El número predeterminado de depósitos es 5.

Si la solución de minería de datos usa datos de un cubo OLAP (Procesamiento analítico en línea), el algoritmo de minería de datos calcula automáticamente el número de depósitos que se deben generar mediante la siguiente ecuación, donde n es el número de valores de datos distintos existentes en la columna:

Number of Buckets = sqrt(n)

Si no desea que Analysis Services calcule el número de depósitos, puede utilizar la propiedad DiscretizationBucketCount para especificar manualmente el número de depósitos.

La siguiente tabla describe los métodos que puede utilizar para discretizar datos en Analysis Services.

Método de discretización

Descripción

AUTOMATIC

Analysis Services determina el método de discretización que se va a utilizar.

CLUSTERS

El algoritmo divide los datos en grupos mediante el muestreo de los datos de entrenamiento, inicializa en un número de puntos aleatorios y, a continuación, ejecuta varias iteraciones del algoritmo de clústeres de Microsoft utilizando el método de agrupación en clústeres EM (Expectation Maximization). El método CLUSTERS resulta útil porque funciona en cualquier curva de distribución. Sin embargo, requiere más tiempo de procesamiento que otros métodos de discretización.

Este método sólo puede utilizarse con columnas numéricas.

EQUAL_AREAS

El algoritmo divide los datos en grupos que contienen el mismo número de valores. Este método es la mejor opción para las curvas de distribución normales, pero no se obtendrán resultados óptimos si la distribución incluye grandes cantidades de valores en un grupo pequeño de los datos continuos. Por ejemplo, si la mitad de los productos tiene un costo de 0, la mitad de los datos se encontrarán bajo un solo punto de la curva. En esta distribución, este método divide los datos en un intento de establecer una discretización igual en varias áreas. Esto produce una representación inexacta de los datos.

lunes, 25 de julio de 2011

SERVER MINING ARQUITECTURE–SQL SERVER 2008

Con el pasar de estudios, proyectos y el training que uno va teniendo se pregunta a veces como es la Arquitectura a seguir o cual es la interaccion de lo que uno desarrolla. Webiando por internet encontre esta imagen en el site de Microsoft en donde se define la Arquitectura de Servidor de Mining.




  • Podemos ver el deploy que hacemos por medio de SSMS, VISIO, EXCEL y Business Intelligence Development Studio

  • El Algoritmo de DataMining que hace uso de un DataSource para hacer el training y Validation

  • La Aplicacion de Datos al Modelo de Mining

  • La interaccion con Conexiones de datos para mostrar los resultados en Excel, Visio, SSRS o una aplicacion Adhoc

See more details

lunes, 18 de julio de 2011

Data mining Addin EXCEL Error "Session mining objects ... cannot be created on this instance."

Cómo Corregir el Error "Session mining objects ... cannot be created on this instance."


Después de instalar los complementos de minería de datos de SQL Server para office, estaba intentando utilizar algunas de las funciones de análisis de tabla proporciona y me topó con un error que dice "Error (minería de datos): no se pueden crear objetos de minería de sesión (incluyendo vistas de origen de datos especial utilizadas para procesar las dimensiones de minería de datos) en esta instancia". WoW, qué mensaje de error útil!


Session mining objects cannot be created on this instance


Resulta que, a fin de utilizar las herramientas de análisis como previsión, resalte excepciones, detectar categorías, analizar las principales fuentes de influencia, análisis de escenarios, relleno de ejemplo, etc.... hay que configurar SQL server para permitir la creación de modelos de minería temporal (también conocido como " objetos de sesión de mining"). Ahh... el mensaje de error críptico tiene ahora un poco más sentido.


Aquí es cómo arreglarlo:



  1. Vete a Menú Inicio > todos los programas > Microsoft SQL 2008 Data Mining complementos > utilidad de configuración del servidor
    SQL 2008 Data Mining Add-in Server Configuration Utility

  2. La utilidad le guiará a través de unos sencillos pasos, pero este paso es el que realmente resuelve este problema. Explica un poco más acerca de estos modelos de sesiones/temporal.
    Allow creation of temporary mining models

Eso es todo. Una vez finalizado al asistente, podrá ejecutar el modelo.


Nota: Si ha creado una nueva base de datos para los usuarios de agregar en el paso 3 de la herramienta de configuración, obviamente, deberás cambiar la conexión de servicios de análisis en Excel para que apunte a la nueva base de datos antes de que esto funcionará.


Change Analysis Services connection in Excel

domingo, 17 de julio de 2011

Complementos de Data Mining para Office 2007

Microsoft SQL Server 2008 ofrece un ecosistema de negocios completo, intuitivo y de colaboración que permite a los usuarios para infundir un insight útil, innovador y confiable en las decisiones de negocio en toda la organización.




Descargar el minería de datos complementos para Office 2007.







  • Integral



    Extender los beneficios del análisis predictivo para todos los usuarios, ofreciendo un ciclo de vida de desarrollo de minería de todos los datos a través del entorno familiar de 2007 Microsoft Office system.






  • Intuitiva



    Permiten a los usuarios aprovechar las tecnologías de minería avanzada de datos, ocultar la complejidad subyacente tareas automatizadas que ofrecen información útil en toda la organización.






  • Colaboración
    Compartir los modelos de minería de datos a través de la visualización gráfica interactiva y ofrecer recomendación y insight con capacidades de publicación rápidas y simples.




Top novedades






  • Puntuación de nuevos casos a buscar a los clientes más rentables con nueva calculadora de predicción.





  • Descubrir oportunidades de cross-selling/up-sell para optimizar las ofertas con nuevos análisis de cesta de compras.





  • Validar la precisión y estabilidad de modelos simultáneamente con Cross Validation de nuevo, ricamente con formato.





  • Generar informes de resumen para mejorar la colaboración con la nueva función de modelo de documento y referencia a.



Capacidad de resaltado



Calculadora de predicción




Prediction Calculator




Haga clic en la imagen para ver la vista más grande




Videos de Add-in para Minería de datos



Getting Started with the Table Analysis ToolsShopping Basket Analysis ToolForecast Table Analysis ToolFill From Example Analysis Tools




Prediction Calculator Table Analysis ToolsDetect Catagories Table Analysis ToolsAnalyze Key Influencers Table Analysis ToolsHighlight Exceptions

martes, 12 de julio de 2011

Libros en pantalla de SQL Server 2008 R2

Libros en pantalla de MicrosoftSQL Server. Este conjunto de documentos le ayda a conocer SQL Server y a implementar proyectos de administración de datos y de Business Intelligence. SQL Server incluye varias tecnologías de análisis y administración de datos. Para obtener más información acerca de estas tecnologías, haga clic en los siguientes vínculos.

 

Icono del motor de base de datosMotor de base de datosEl Motor de base de datos es el servicio principal para almacenar, procesar y proteger los datos. El Motor de base de datos proporciona acceso controlado y procesamiento rápido de transacciones para cumplir los requisitos de las aplicaciones consumidoras de datos más exigentes de su empresa. El Motor de base de datos también proporciona una completa compatibilidad para mantener una gran disponibilidad.

Icono de Analysis ServicesAnalysis Services - Datos multidimensionalesAnalysis Services admite OLAP al permitir al usuario diseñar, crear y administrar estructuras multidimensionales que contienen datos agregados de otros orígenes tales como bases de datos relacionales.

Icono de minería de datosAnalysis Services - Minería de datosAnalysis Services permite al usuario diseñar, crear y visualizar modelos de minería de datos. Estos modelos de minería de datos se pueden construir a partir de otros orígenes de datos empleando una amplia variedad de algoritmos de minería de datos estándar.

Icono de Integration ServicesIntegration ServicesIntegration Services es una plataforma para generar soluciones de integración de datos de alto rendimiento, lo que incluye paquetes que proporcionan procesamiento de extracción, transformación y carga (ETL) para almacenamiento de datos.

Icono de Servicios de datos maestrosMaster Data ServicesMaster Data Services es el origen de datos maestros para la organización. Mediante la integración de diferentes sistemas de análisis y operaciones con Master Data Services, puede garantizar que todas las aplicaciones de la organización dependen de una fuente de información central y precisa. Con Master Data Services, crea un origen único de datos maestros y mantiene un registro de los datos, que cambian en el tiempo y que puede controlar.

Icono de replicaciónReplicaciónLa replicación es un conjunto de tecnologías destinadas a la copia y distribución de datos y objetos de base de datos de una base de datos a otra, para luego sincronizar ambas bases de datos con el fin de mantener su coherencia. La réplica permite distribuir datos a diferentes ubicaciones y a usuarios remotos o móviles mediante redes de área local y de área extensa, conexiones de acceso telefónico, conexiones inalámbricas e Internet.

Icono de Reporting ServicesReporting ServicesReporting Services ofrece funcionalidad empresarial de informes habilitados para Web con el fin de poder crear informes que extraigan contenido a partir de una variedad de orígenes de datos, publicar informes con distintos formatos y administrar centralmente la seguridad y las suscripciones.

ms130214.SharePoint_icon(es-es,SQL.105).gifIntegración de SharePointSQL Server 2008 R2 proporciona una nueva capacidad de Business Intelligence de autoservicio a través de la integración con productos y tecnologías de SharePoint. En esta versión, tanto Analysis Services como Reporting Services admiten la implementación en una granja de servidores de SharePoint.

Icono de Service BrokerService BrokerService Broker ayuda a los desarrolladores de software a crear aplicaciones de base de datos escalables y seguras. Esta nueva tecnología de Motor de base de datos proporciona una plataforma de comunicación basada en mensajes que permite a los componentes de aplicación independientes trabajar como un conjunto funcional. Service Broker incluye infraestructura para programación asincrónica que se puede utilizar para aplicaciones en una base de datos única o instancia única, y también para aplicaciones distribuidas

lunes, 23 de noviembre de 2009

Self-Service Business Intelligence

ms-sql-server-2008-r2-august-ctpAhora el R2 de SQL SERVER 2008 trae Potentes herramientas de BI en expansión para todos los usuarios con SQL Server PowerPivot para Excel y la potenciación de una nueva clase de los usuarios de negocios para generar y compartir potentes soluciones de BI con poco o ningún soporte de TI, mientras todavía permite TI supervisar y gestionar soluciones de BI generados por el usuario.

Los departamentos de IT y los usuarios han estado tradicionalmente en contradicción con los demás sobre análisis Self-Service. Los departamentos de TI intentan mantener la gobernabilidad y control de TI; los usuarios finales desean generar y administrar su propio contenido y presentación de informes.  Con self-service business intelligence administrado en SQL Server 2008 R2, cumplen estos dos mundos, ademas de proporcionar ventaja significativa para el negocio. SQL Server 2008 R2 ofrece tanto a los usuarios finales y a TI con herramientas de vanguardia para crear, analizar y modelo, compartir y administrar los datos de inteligencia del negocio de una manera segura y racionalizada.

Herramientas de análisis autoservicio permiten a los usuarios finales crear rápidamente soluciones dentro de una familiar interfaz de usuario de Microsoft Office Excel de orígenes de datos distintas. Mediante la publicación de estas soluciones en SharePoint Server, los usuarios pueden fácilmente compartirlos con otros. TI obtiene una administración y supervisión por lo que pueden ayudar a garantizar la fiabilidad, rendimiento y seguridad de los activos controladas por datos en toda la empresa, al tiempo que obtiene también una mayor visibilidad de la manera en que las personas utilizan sus datos.

Improve Data Quality & Efficiency

Garantiza la coherencia de presentación de informes a través de datos y sistemas por lo que es más rápido, puede ofrecer resultados más precisos en toda la empresa con herramientas que permiten adoptar un enfoque centralizado para definir, implementar y administrar datos maestros. El concentrador de datos maestros en SQL Server 2008 R2 proporciona a las organizaciones una forma coherente para realizar el seguimiento de las versiones de datos maestros y responder a las preguntas sobre datos maestros en puntos específicos en el tiempo. Datos maestros consistentes mejoran la calidad de los sistemas de datos para toda la empresa y ayuda a mantener los requisitos operacionales y de negocios de inteligencia.

Crear, editar y actualizar los datos maestros eficientemente a través de un portal central. Los portales de la administración de datos maestros proporciona control centralizado de datos maestros, incluidos los miembros y las jerarquías y permite a los administradores de modelo de datos garantizar la calidad de los datos por desarrollar, revisión y gestión de modelos de datos y su aplicación coherente en todos los dominios.

Deliver BI Data Securely & Reliably

Extender el control efectivo de TI a creado para el uso de soluciones analíticas a través de una consola de administración centralizada utilizando Microsoft SQL Server 2008 R2 y el PowerPivot add-in para SharePoint Server 2010. En SQL Server 2008 R2, los usuarios finales pueden publicar sus soluciones basadas en datos a través de SharePoint, lo que permite el Departamento de TI administrar de manera efectiva el control de versiones, el acceso de usuario y la utilización de recursos. Esto permite que el Departamento de TI para controlar quién tiene acceso a datos confidenciales y para ayudar a asegurar la disponibilidad coherente de los datos corporativos. También les da mayor conocimiento sobre lo que datos y soluciones de gente utiliza al mismo tiempo, ayudar a prevenir la proliferación de aplicaciones no administradas "sombra".

dbi

Enable Self-Service Analysis and Easier Collaboration

Ampliar el alcance de herramientas de inteligencia de negocio a un público más amplio y fomentar el análisis ad-hoc para capacitar a los usuarios crear sus propias aplicaciones analíticas a través de la PowerPivot addin de Excel (antes conocido como "Géminis") y SQL Server 2008 R2. Con PowerPivot, los usuarios están facultados para crear soluciones mediante datos de fuentes tanto administrado por TI y externas, llevar a cabo avanzados análisis ad-hoc y modelado, extraer el valor de datos más fácilmente y publicar y compartir informes para sus colegas.

Reducir el tiempo y el costo de los informes con herramientas intuitivas de usuario final que hacen más fácil para las personas  encontrar, utilizar y compartir información. Informe Builder 3.0 en SQL Server 2008 R2 facilita aún más para los usuarios finales crear informes con mayor rapidez y fomenta la colaboración y la coherencia haciéndolos más fáciles de compartir.

Permiten análisis autoservicio manteniendo TI directrices y el control proporcionando plataformas apoyados por TI como SharePoint para publicar sus soluciones garantizando accesibilidad y TI gobernanza.

dbi2

Producir nuevos conocimientos y experiencias más ricos mediante la integración de datos geoespaciales junto con otras fuentes de datos corporativos y tipos. SQL Server 2008 R2 admite la asignación, enrutamiento, formas personalizadas y otros datos espaciales y facilita la tarea de combinar con otros datos y mapas de Bing para empresas, crear una nueva clase de soluciones basadas en datos ricas.

Simplificar la recopilación de datos que requieren mucho tiempo y las tareas de consolidación con herramientas que facilitan el crear "datos mash ups", que combinan datos de diferentes fuentes. Datos mash ups proporcionan nuevas maneras de combinar los datos existentes, desde las bases de datos corporativas o fuentes externas y analizan mediante herramientas familiares en Office Excel.

Build Rich Applications with all Data

Producir nuevos conocimientos y experiencias más ricos mediante la integración de datos geoespaciales junto con otras fuentes de datos corporativos y tipos. SQL Server 2008 R2 admite la asignación, enrutamiento, formas personalizadas y otros datos espaciales y facilita la tarea de combinar con otros datos y mapas de Bing para empresas, crear una nueva clase de soluciones basadas en datos ricas.

Simplificar la recopilación de datos que requieren mucho tiempo y las tareas de consolidación con herramientas que facilitan el crear "datos mash ups", que combinan datos de diferentes fuentes. Datos mash ups proporcionan nuevas maneras de combinar los datos existentes, desde las bases de datos corporativas o fuentes externas y analizan mediante herramientas familiares en Office Excel.

bi

jueves, 29 de octubre de 2009

Algoritmos para Mineria de Datos con SQL Server 2008

 

 

Hace unas semanas atras conversaba con un amigo sobre Data mining y me hizo la interrogante que muchos nos hemos echo en algun momento de nuestro aprendizaje .. Cuando debo utilizar tal o cual algoritmo y en que casos?…  yo siempre respondia “depende” y pues retomando la lectura de Microsoft Technet para SSAS estaba leyendo lo que les pongo a continuacion a manera de un Copy & Paste de la info que Microsoft.

 

Los modelos de minería de datos pueden predecir valores, generar resúmenes de datos y buscar correlaciones ocultas. Para ayudarle a seleccionar los algoritmos para su solución de minería de datos, la siguiente tabla proporciona sugerencias sobre qué algoritmos usar en tareas específicas.

 

 

 

 

Tarea Algoritmos de Microsoft que se pueden usar

Predecir un atributo discreto.

Por ejemplo, predecir si el destinatario de una campaña de envío de correo directo adquirirá un producto.

Algoritmo de árboles de decisión de Microsoft

Algoritmo Bayes naive de Microsoft

Algoritmo de clústeres de Microsoft (Analysis Services - Minería de datos)

Algoritmo de red neuronal de Microsoft (Analysis Services - Minería de datos)

Predecir un atributo continuo.

Por ejemplo, prever las ventas del año próximo.

Algoritmo de árboles de decisión de Microsoft

Algoritmo de serie temporal de Microsoft (Analysis Services - Minería de datos)

Predecir una secuencia.

Por ejemplo, realizar un análisis clickstream del sitio web de una empresa.

Algoritmo de agrupación en clústeres de secuencia de Microsoft

Buscar grupos de elementos comunes en las transacciones.

Por ejemplo, utilizar el análisis de la cesta de la compra para sugerir a un cliente la compra de productos adicionales.

Algoritmo de asociación de Microsoft

Algoritmo de árboles de decisión de Microsoft

Buscar grupos de elementos similares.

Por ejemplo, segmentar datos demográficos en grupos para comprender mejor las relaciones entre atributos.

Algoritmo de clústeres de Microsoft (Analysis Services - Minería de datos)

Algoritmo de agrupación en clústeres de secuencia de Microsoft

viernes, 23 de octubre de 2009

Funciones para trabajar con valores NULL en SQL SERVER

Hace meses profundice sobre el tema de los valores NULL pero no postie por olvido, descuido o lo que sea… pero ayer me toco optimizar y hacer unos select’s con valores NULL.. ojala les sirva de algo la siguiente info. Para hacer los ejemplos deberemos intalar primero la base de datos ADVENTUREWORKS

SQL Server puede producir resultados inesperados al realizar los cálculos en columnas que tienen valores NULL. En tales situaciones, normalmente asigna un valor reemplazo como 0 a las columnas que contienen valores NULL. Esto producirá más resultados inesperados. Por lo tanto, para resolver este problema necesita utilizar las funciones ISNULL, NULLIF y COALESCE de SQL Server 2005, cuando sus columnas contiene valores NULL.

  • La función ISNULL reemplaza valores NULL con el valor especificado de reemplazo. El siguiente es la sintaxis de la función ISNULL:

ISNULL check_expression (replacement_value)
La función toma los siguientes argumentos:

check_expression es la expresión ser comprobado para valores NULL y puede ser de cualquier tipo de datos.

replacement_value es la expresión que se devolverán si check_expression es NULL y deben estar el mismo tipo de datos como la check_expression.

La función ISNULL devuelve el resultado que el mismo tipo que la check_expression.

El siguiente ejemplo de código demuestra el uso de la función ISNULL en una declaración SELECT y también  como es sin la funcion is null con el valor de remplazo.  ejecutamos las dos sentencias y vamos a ver la diferencia en el valor resultante


USE Adventureworks;
SELECT AVG(Weight)
FROM Production.Product

 

USE Adventureworks;
SELECT AVG(ISNULL(Weight,50))
FROMProduction.Product

En este ejemplo, la función ISNULL sirve para encontrar el promedio del peso de todos los productos. La función ISNULL sustituye el valor de 50 para todas las entradas NULL en la columna de la tabla de productos de peso.

El siguiente es el conjunto de resultado completo de la consulta.

59.79 (1 filas afectadas)

  • La función NULLIF devuelve un valor NULL si los dos especificado expresiones son equivalentes. El siguiente es la sintaxis de la función NULLIF:

NULLIF (expr, expresión)

La función toma dos argumentos. El argumento, expresión, puede ser una constante, nombre de columna, subconsulta, función o cualquier combinación de aritmética, bit a bit y los operadores de cadena. La función NULLIF devuelve el resultado del mismo tipo de datos como la primera expresión.

La función NULLIF devuelve la primera expresión si las dos expresiones no son equivalentes. De lo contrario, devuelve un valor NULL.

El siguiente ejemplo de código recupera la StandardCost promedio de los productos que pertenecen a la clase ‘ L ’.

SET NOCOUNT ON
USE
Adventureworks;
SELECT AVG (StandardCost) AS AvgCost
FROM Production.Product
WHERE Class='L'

El siguiente es el conjunto de resultado completo de la consulta.

Costo promedio
---------------
220.4349

Esta media incluye algunas filas que tener valores NULL en la columna StandardCost. Por tanto, el valor que aparece en el conjunto de resultados de coste medio es incorrecto. Sin embargo, la misma consulta puede ser reescrita con la ayuda de la función NULLIF para garantizar que los productos con NULL como StandardCost no se incluyen en el cálculo.

USE Adventureworks;
SELECT AVG(NULLIF(StandardCost, 0)) AS AvgCost
FROM Production.Product
WHERE Class='L'


El siguiente es el conjunto de resultado completo de la consulta.



AvgCost

---------------


240.2493



 




  • La función de COALESCE devuelve la primera expresión no null entre sus argumentos. El siguiente es la sintaxis de la función de combinación:



COALESCE(expresión [,.. .n])



La función toma dos argumentos. La expresión de argumento es una expresión de cualquier tipo de datos. El argumento n es un marcador de posición que indica que se pueden especificar múltiples expresiones. El mismo tipo de datos debe todas las expresiones.



La función de COALESCE devuelve el resultado que el mismo tipo de datos como la expresión. Si todos los argumentos de la función de combinación son NULL, a continuación, devuelve NULL.



En la base de datos AdventureWorks, tener en cuenta la tabla que contiene las siguientes filas CustomerPhone































































Customer_Name Home_Phone Office_Phone Mobile_Phone

Thomas



0225872342



NULL



9870414716



Gary



NULL



NULL



982034452



Janet



NULL



099345522



NULL



Steve



232323452



334435454



NULL



Michelle



NULL



NULL



NULL




La tabla anterior contiene varios números de teléfono para un determinado cliente. Algunos clientes no tenga todos los números de teléfono de tres. El siguiente ejemplo de código de utiliza la función de combinación para devolver el número de teléfono no null primero, para un cliente en particular y para los clientes con no números de teléfono válido, la cadena de ‘ no registrados número ’ se muestra.


 


SET NOCOUNT OFF
USE
AdventureWorks
SELECT Customer_Name, COALESCE(Mobile_Phone, Office_Phone, Home_Phone, 'No Listed Number') as Telephonefrom CustomerPhone



El siguiente es el conjunto de resultado completo de la consulta.


The following is the complete result set of the query.








































Customer_Name Telephone

Thomas



9870414716



Gary



982034452



Janet



099345522



Steve



334435454



Michelle



No Listed Number


miércoles, 12 de agosto de 2009

Cursos Online de Herramientas Microsoft ( http://msdn.microsoft.com/es-es/dd443596.aspx )

miércoles, 18 de marzo de 2009

Native SQL Server Functions – T-SQL SQL Server 2005

Hace tiempo atrás tuve un problema con una función de T-SQL y nadie me podía ayudar, tal vez porque las conocen como PALABRAS RESERVADAS, PALABRAS CLAVEZ o lo correcto FUNCIONES... pero no, la verdad era que no nos sabemos las FUNCIONES de T-SQL tan bien como pensamos. Mencionare algunas funciones con algunos ejemplos

En si las Funciones son elementos de sintaxis que toma cero, uno o  más valores de entrada que van a devolver un valor escalar o un conjunto de tabla de valores. En SQL Server 2005, la funciones se clasifican en funciones deterministas y no deterministas.

Funciones deterministas siempre devuelven los mismos resultados para un conjunto específico de valores de entrada.

Funciones no determinista devuelven resultados diferentes cuando a que se les llama repetidamente con el mismo conjunto de valores de entrada. Funciones de SQL Server también pueden clasificarse según el tipo de insumos que acepta la función.

 

STRING FUNCTIONS

SUBSTRING: recupera una parte de la cadena de entrada.

USE AdventureWorks2008
GO
SELECT
SUBSTRING(FirstName,1,4) AS 'Primer Nombre'
FROM Person.Person
WHERE Person.BusinessEntityID = 1545

UPPER and LOWER: convierte una datos de carácter minúsculas a mayúsculas y viceversa

USE AdventureWorks2008
GO



SELECT UPPER(FirstName) as 'Primer Nombre'
FROM Person.Person
WHERE Person.BusinessEntityID = 883



STUFF: elimina una longitud de caracteres especificada e inserta otro conjunto de caracteres en una ubicación especificada.



LTRIM: elimina los espacios iniciales de una cadena.



RTRIM: elimina los espacios al final de una cadena.



REPLACE: sustituye a todas las ocurrencias de una cadena específica en una cadena dada con otra cadena.



SOUNDEX: devuelve un código de cuatro caracteres que (SOUNDEX) para evaluar la similitud de dos cadenas.



DIFFERENCE: devuelve un valor entero que indica la diferencia entre los valores SOUNDEX de dos caracteres de expresiones



DATE AND TIME FUNCTIONS



GETDATE: función determinista que devuelve la fecha del sistema actual y la hora.



DATEDIFF: función determinista que devuelve el número de los límites de fecha y hora en que existe entre dos fechas especificadas.



USE AdventureWorks2008
GO

SELECT
DATEDIFF(MONTH, OrderDate, GETDATE()) AS 'Numero Meses'
FROM Sales.SalesOrderHeader
WHERE SalesOrderID = 43659



DATEADD: función determinista que devuelve un valor de fecha y hora nuevo basado sobre cómo agregar un intervalo a la fecha especificada.



USE AdventureWorks2008
GO
SELECT
DATEADD(YEAR, 7, HireDate) AS 'Fecha de 3 años de finalización'
FROM HumanResources.Employee
WHERE BusinessEntityID = 30



DATEPART: función determinista excepto cuando se usa como DATEPART (dw, fecha). depende de DW, datepart el día de la semana, el valor establecido por SET DATEFIRST, que establece el primer día de la semana. Devuelve un entero que representa el datepart especificado.



USE AdventureWorks2008
GO
SELECT
DATEPART(DAY, BirthDate) AS 'Cumple Años'
FROM HumanResources.Employee
WHERE BusinessEntityID = 120


DATENAME: función determinista que devuelve una cadena de caracteres que representa el datepart especificado.  función no Determinista que devuelve una cadena de caracteres que representa el datepart especificado.



USE AdventureWorks2008
GO
SELECT
DATENAME(month, BirthDate) As 'Mes Cumple Años'
FROM HumanResources.Employee
WHERE BusinessEntityID = 120



DAY, MONTH, and YEAR: funciones deterministas que devuelve un entero que representa una parte del día, mes y año respectivamente.



GETUTCDATE: función determinista que devuelve el valor de datetime que representa a la hora UTC actual (tiempo universal coordinado o hora del meridiano de Greenwich).



SELECT GETUTCDATE()
FROM HumanResources.Employee
WHERE BusinessEntityID = 120


MATHEMATICAL FUNCTIONS



ABS: devuelve el valor absoluto, positivo de un número.



SELECT ABS(-1.0), ABS(-0.0355), ABS(1.12)



COS y SIN: devuelve el coseno y el seno del ángulo determinado, respectivamente.



SELECT COS(30.3)
SELECT ABS(SIN(30.3))



POWER: devuelve el valor de una expresión dada a la potencia especificada.



SELECT POWER(3,4), POWER(5,2)



REDONDEAR: muestra una expresión numérica, redondeada a la longitud especificada.



SELECT ROUND(23.23456, 4)



FLOOR y CEILING: devuelve el entero más grande menor o igual a y el número entero más pequeño mayor o igual a la expresión numérica determinada, respectivamente.



SELECT CEILING(156.234)
SELECT FLOOR(156.234)


SELECT CEILING(-34.564)
SELECT FLOOR(-34.564)



SQRT y SQUARE: devuelve la raíz cuadrada y el cuadrado de un número determinado, respectivamente.



SELECT SQRT(64)
SELECT SQUARE(9)


CONVERSION FUNCTIONS



Las funciones de conversión son CAST y CONVERT. Las funciones CAST y CONVERT convierten explícitamente una expresión de tipo de datos de uno a otro tipo de datos. La diferencia entre CAST y CONVERT es que CAST es ANSI, mientras que CONVERT no es ANSI. Además, CONVERT tiene parámetros de estilo opcional.



SELECT CAST ('19700926' AS SMALLDATETIME)
SELECT CONVERT(SMALLDATETIME,'19700926')
SELECT CONVERT(VARCHAR(MAX),GETDATE(), 3)
SELECT CONVERT(VARCHAR(MAX),GETDATE(), 103)



 



SYSTEM FUNCTIONS



HOST_NAME: función determinista que devuelve el nombre de la estación de trabajo y es bueno para realizar auditorías.



SELECT HOST_NAME()



XACT_STATE: función determinista que informa el estado de transacción de una sesión, que indica si la sesión tiene una transacción activa, y si la transacción es capaz de ser cometido.



SELECT XACT_STATE()



SYSTEM_USER: función determinista que permite un valor proporcionados por el sistema para el inicio de sesión actual que se insertará en una tabla cuando no se especifica ningún valor predeterminado.



SELECT SYSTEM_USER



CURRENT_TIMESTAMP: función determinista que devuelve la fecha y hora actuales.



SELECT CURRENT_TIMESTAMP



DATALENGTH: función determinista que devuelve el número de bytes que se utiliza para representar cualquier expresión.



select DATALENGTH('EXPRESSION Longitud')



SUSER_SNAME: función determinista que devuelve el nombre de identificación de inicio de sesión de número de identificación del usuario de seguridad.



SELECT SUSER_NAME( 1 )   sa


SELECT SUSER_NAME( 2 )   public


SELECT SUSER_NAME( 3 )   sysadmin


SELECT SUSER_NAME( 4 )   securityadmin



SELECT SUSER_NAME( 5 )      serveradmin



SELECT SUSER_NAME( 6 )      setupadmin



METADATA FUNCTIONS



DB_NAME: muestra el nombre de base de datos actual.



OBJECT_ID: muestra el número de identificación de objeto de la base de datos actual.



OBJECT_NAME: muestra el nombre de la base de datos de objeto.



USE AdventureWorks2008;
GO

DECLARE
@ObjetoId int;
SET @ObjetoId = (SELECT OBJECT_ID('HumanResources.Employee', 'U'));

SELECT name, object_id, type_desc
FROM sys.objects
WHERE name = OBJECT_NAME(@ObjetoId);


NULL FUNCTIONS



ISNULL: reemplazos NULL con el valor especificado de reemplazo.



NULLIF: devuelve NULL si los dos había especificado expresiones es equivalentes.



COALESCE: devuelve la primera expresión no NULL entre sus argumentos.



USE AdventureWorks2008;

SELECT AVG(ISNULL(Weight, 50))

FROM Production.Product;