복붙노트

[SQL] 기준 개체로 그룹 최대 절전 모드

SQL

기준 개체로 그룹 최대 절전 모드

나는 최대 절전 모드 기준으로 다음과 같은 SQL 쿼리를 구현하고 싶습니다 :

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name <operator> value
GROUP BY column_name

나는 최대 절전 모드 기준으로이를 구현하려고 노력하지만 잘되지 않았다.

그 누구도 날이가 최대 절전 모드 기준으로 수행 할 수있는 방법을 예를 들어 줄 수 있습니까? 감사!

해결법

  1. ==============================

    1.예 국지적 인 주요 지점에 대한이를 참조하십시오하면 groupProperty ()와 돌기 클래스에서 제공하는 관련 집계 함수를 사용하는 것입니다.

    예 국지적 인 주요 지점에 대한이를 참조하십시오하면 groupProperty ()와 돌기 클래스에서 제공하는 관련 집계 함수를 사용하는 것입니다.

    예를 들면 :

    SELECT column_name, max(column_name) , min (column_name) , count(column_name)
    FROM table_name
    WHERE column_name > xxxxx
    GROUP BY column_name
    

    동등한 기준 객체는 다음과 같습니다

    List result = session.createCriteria(SomeTable.class)       
                        .add(Restrictions.ge("someColumn", xxxxx))      
                        .setProjection(Projections.projectionList()
                                .add(Projections.groupProperty("someColumn"))
                                .add(Projections.max("someColumn"))
                                .add(Projections.min("someColumn"))
                                .add(Projections.count("someColumn"))           
                        ).list();
    
  2. ==============================

    2.최대 절전 모드에서 사용하는 그룹으로

    최대 절전 모드에서 사용하는 그룹으로

    이 결과 코드

    public Map getStateCounts(final Collection ids) {
        HibernateSession hibernateSession = new HibernateSession();
        Session session = hibernateSession.getSession();
        Criteria criteria = session.createCriteria(DownloadRequestEntity.class)
                .add(Restrictions.in("id", ids));
        ProjectionList projectionList = Projections.projectionList();
        projectionList.add(Projections.groupProperty("state"));
        projectionList.add(Projections.rowCount());
        criteria.setProjection(projectionList);
        List results = criteria.list();
        Map stateMap = new HashMap();
        for (Object[] obj : results) {
            DownloadState downloadState = (DownloadState) obj[0];
            stateMap.put(downloadState.getDescription().toLowerCase() (Integer) obj[1]);
        }
        hibernateSession.closeSession();
        return stateMap;
    }
    
  3. ==============================

    3.당신은 @Ken 찬 언급 접근 방식을 사용하고, 객체, 예를 들어 특정 목록을 원한다면 그 후 단 한 줄의 코드를 추가 할 수 있습니다 :

    당신은 @Ken 찬 언급 접근 방식을 사용하고, 객체, 예를 들어 특정 목록을 원한다면 그 후 단 한 줄의 코드를 추가 할 수 있습니다 :

        session.createCriteria(SomeTable.class)       
                        .add(Restrictions.ge("someColumn", xxxxx))      
                        .setProjection(Projections.projectionList()
                                .add(Projections.groupProperty("someColumn"))
                                .add(Projections.max("someColumn"))
                                .add(Projections.min("someColumn"))
                                .add(Projections.count("someColumn"))           
                        ).setResultTransformer(Transformers.aliasToBean(SomeClazz.class));
    
    List<SomeClazz> objectList = (List<SomeClazz>) criteria.list();
    
  4. ==============================

    4.최대 절전 기준을 사용하여 그룹을해야 할 경우 다음과 같은 projections.groupPropery를 사용,

    최대 절전 기준을 사용하여 그룹을해야 할 경우 다음과 같은 projections.groupPropery를 사용,

    @Autowired
    private SessionFactory sessionFactory;
    Criteria crit = sessionFactory.getCurrentSession().createCriteria(studentModel.class);
    crit.setProjection(Projections.projectionList()
                .add(Projections.groupProperty("studentName").as("name"))
    List result = crit.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP).list(); 
    return result;  
    
  5. from https://stackoverflow.com/questions/8491796/hibernate-group-by-criteria-object by cc-by-sa and MIT license