Java Hibernate JPQL QUERY (función agregada: CUENTA) -- java campo con sql campo con hibernate campo con jpql camp Relacionados El problema

Java Hibernate JPQL Query (Aggregate Function: count)


0
vote

problema

Español

Durante un Único, obtengo la siguiente tabla (ejemplo):

  +----------+----------+ | Hostname | Severity | +----------+----------+ | host1    |   high   | | host2    |  medium  | | host1    |   high   | | host2    |   low    | | host1    |   low    | | host2    |   low    | | host1    |   low    | | host2    |   high   | | host1    |   high   | | host2    |   high   | +----------+----------+   

¿Es posible crear la consulta IPQL donde obtengo el siguiente resultado:

  +----------+------+--------+-----+ | Hostname | high | medium | low | +----------+------+--------+-----+ | host1    |  3   |   0    |  2  | | host2    |  2   |   1    |  2  | +----------+------+--------+-----+   

Lo intenté con c = {'auth_token': '5227121307', '_hauavc_4699a329': 'b27e38d'} 0 y c = {'auth_token': '5227121307', '_hauavc_4699a329': 'b27e38d'} 111 PERO TENGO ALGO COMO ELETO:

  c = {'auth_token': '5227121307', '_hauavc_4699a329': 'b27e38d'} 2  

etc ...

br, rene

Original en ingles

During a join I get the following Table (example):

+----------+----------+ | Hostname | Severity | +----------+----------+ | host1    |   high   | | host2    |  medium  | | host1    |   high   | | host2    |   low    | | host1    |   low    | | host2    |   low    | | host1    |   low    | | host2    |   high   | | host1    |   high   | | host2    |   high   | +----------+----------+ 

Is it possible to create I JPQL query where I get the following result:

+----------+------+--------+-----+ | Hostname | high | medium | low | +----------+------+--------+-----+ | host1    |  3   |   0    |  2  | | host2    |  2   |   1    |  2  | +----------+------+--------+-----+ 

I tried with COUNT and GROUP BY but I got something like that:

host1,high,3 host1,medium,0 host1,low,2 

etc...

BR, Rene

           

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Una consulta de SQL estándar se vería así: no estoy seguro de qué esfuerzo se requiere para la API que está utilizando, pero es un grupo bastante directo por la lógica de casos.

  select hostname,    sum(case when severity = 'high' then 1 else 0 end) as high,   sum(case when severity = 'medium' then 1 else 0 end) as medium,   sum(case when severity = 'low' then 1 else 0 end) as low from   Table group by   hostname order by   hostname   
 

A standard sql query would look like this - I'm not sure what effort is required to the API you are using, but its a pretty straight-forward group by with case logic.

select hostname,    sum(case when severity = 'high' then 1 else 0 end) as high,   sum(case when severity = 'medium' then 1 else 0 end) as medium,   sum(case when severity = 'low' then 1 else 0 end) as low from   Table group by   hostname order by   hostname 
 
 
0
 
vote

En realidad, su resultado se ve bien, es solo una fila por "celular".

Si desea tener una columna por Severity , tendrá que usar subselectos, lo que no vale la pena la molestia, la OMI. Solo lea las filas que obtiene y conviertas en el formato de matriz manualmente.

 

Actually, your result looks fine, it's just one row per "cell".

If you want to have a column per Severity entry, you'd have to use subselects, which is not worth the hassle, IMO. Just read the rows you get and convert them into the matrix format manually.

 
 
 
 

Relacionados problema

0  ¿Hay alguna manera de obtener la hora y la hora local de un servidor de base de datos Oracle utilizando la clase LocalDateTime de Java?  ( Is there a way to get the local time and time of an oracle database server using ) 
Para obtener la hora actual de la ubicación de mi máquina, y usar su valor para configurar el parámetro para una consulta JPQL, este código funciona bien: ...

9  Consultando una relación @onetoone anulable con JPA  ( Querying a nullable onetoone relationship with jpa ) 
Tengo Entity1 y Entity2 . Tienen una relación anular enneto. @Entity class Entity1 { @Id @Column(name = "id") private Long id; @OneToOne(f...

4  CRISTERIBUILDER DE JPA para generar consultas donde el mapa está vacío usando @MapkeyColumn  ( Jpa criteriabuilder to generate query where map is empty using mapkeycolumn ) 
Siguiendo la situación de referencia de las entidades: colisión - & gt; Colisionstatus & lt; & gt; CollisionWorkGroup (Entidad de unirse) - & gt; Grupo de t...

0  Cómo mejorar el rendimiento de la actualización de datos usando JPA  ( How to improve performance of updating data using jpa ) 
Estoy usando EJB y Contenedor administrado EM (para pruebas locales, estoy creando EM aquí). Tengo un requisito en el que necesito actualizar la base de datos...

0  JPQL uniéndose a dos tablas y adición de parámetro genera EclipsElink Error  ( Jpql joining two tables and adding parameter generates eclipselink error ) 
Entonces .. Tengo dos tablas Utilisateur y DobleSestickets (no hay problemas para insertar la selección de la actualización de la eliminación de cada tabla po...

0  Datos de primavera JPA - Pase el nombre de la columna y el valor como parámetros  ( Spring data jpa pass column name and value as parameters ) 
Solo quería saber cómo pasar el nombre de la columna y su valor a la anotación de @query en los datos de primavera JPA. Básicamente, los nombres de las colu...

0  JPQL teniendo error en consulta  ( Jpql having error in query ) 
Query query=entityManager.createQuery("Select e from StudentQualification e where e.student=:id"); @Id @GeneratedValue(strategy=GenerationType.IDENTITY) ...

2  Fetch Fechas (por mes o año) almacenado en la marca de tiempo usando JPA  ( Fetch dates by month or year stored in timestamp using jpa ) 
Me enfrento a un problema y me gustaría que me ayudes. Resulta que tengo una tabla en mi base de datos Oracle 11g, donde almacano fallas de un dispositivo e...

0  No se puede obtener resultados en la consulta JPQL, mi tamaño de consulta de resultados es 0  ( Unable to get result in jpql query my result query size is 0 ) 
No se puede obtener resultados en la consulta JPQL, mi tamaño de consulta de resultados es 0, apply plugin: 'com.android.application' android { compil...

0  problemas para recolectar el resultado de JPQL de dos entidades unirse a una lista  ( Trouble collecting jpql result of two entity join in a list ) 
Este es el método que ejecutará la instrucción JPQL y la almacenará en la reacción de frijol1 private static final String PARAM_TICKET = "id_tick...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos