Saltar al contenido

Agrupar por

En SQL, el GROUP BY La declaración se usa con funciones agregadas (COUNT(), MAX(), MIN(), SUM(), AVG()) para agrupar las filas resultantes por una o más columnas. Este artículo explicará cómo utilizar GROUP BY en la capa empresarial de Vinyl.

Paso 1: Crear una Subconsulta

para aprovechar GROUP BY en Vinyl, primero necesitarás crear una Subconsulta objeto que proporciona una función agregada. La regla de subconsulta también debe especificar las columnas que desea GROUP BY. Si está familiarizado con SQL, puede confirmar la subconsulta GROUP BY lógica viendo la pestaña SQL disponible en la pantalla Regla en la capa empresarial.

Ejemplo de Regla de Subconsulta

En este ejemplo, crearemos una regla de subconsulta denominada Cliente (agrupar por subconsulta) que se dirige a la tabla Cliente. Esta regla proporcionará una COUNT() función agregada e incluir las columnas que queremos GROUP BY, que son CustomerID y ProductName.

Vista de la pestaña Columnas:

vistacolumnas.png

Vista de pestaña SQL:

SELECT 
       C.ProductName AS ProductName,
       Count(1) AS Count,
       C.CustomerID AS CustomerID
 FROM     
       Customer AS C 
 GROUP BY 
      C.ProductName, 
C.CustomerID 

Paso 2: Unir la Subconsulta a un Objeto Comercial

Después de tener una subconsulta con una función agregada, una la subconsulta a un objeto de negocio. Una vez creado el objeto comercial, puede usarlo para Publicar en la capa UI y exponer los datos y la información resultantes en una página de la aplicación.

Ejemplo de Regla de Objeto Comercial

Siguiendo el ejemplo de Subconsulta, uniremos el Cliente (Grupo por Subconsulta) a la tabla Cliente y estableceremos una unión utilizando el campo clave común entre los dos objetos, que en este escenario es CustomerID.

Vista de pestaña Tablas:

publishuilayer.png

Vista de pestaña SQL:

SELECT 
       C.CustomerID AS CustomerID,
       C.ProductName AS ProductName,
       C.OrderDate AS OrderDate
 FROM     
       "Customer (Group By Subquery)" AS CGBS 
           INNER JOIN  
       Customer AS C ON 
       ( (CGBS.CustomerID = C.CustomerID ) )