Mysql查詢最近6個月每月入駐的企業數量

public List<Object[]> countForSix() throws DaoException{
        String sql = "SELECT\r\n" +
                "    six_month.`month` 'month',\r\n" +
                "    IFNULL(COUNT(u.userId), 0) COUNT\r\n" +
                "FROM\r\n" +
                "    (\r\n" +
                "        SELECT DATE_FORMAT(NOW(), '%Y-%m') MONTH FROM DUAL\r\n" +
                "        UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 MONTH), '%Y-%m') MONTH FROM DUAL\r\n" +
                "        UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 2 MONTH), '%Y-%m') MONTH FROM DUAL\r\n" +
                "        UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), '%Y-%m') MONTH FROM DUAL\r\n" +
                "        UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 4 MONTH), '%Y-%m') MONTH FROM DUAL\r\n" +
                "        UNION ALL SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 5 MONTH), '%Y-%m') MONTH FROM DUAL\r\n" +
                "    ) six_month LEFT JOIN USER u\r\n" +
                "    ON  DATE_FORMAT(u.createDate, '%Y-%m') = six_month.`month`\r\n" +
                "    GROUP BY  six_month.`month`\r\n" +
                "    ORDER BY six_month.`month` ASC";
        try {
            Session session = super.getSessionFactory().getCurrentSession();
            Query query = session.createSQLQuery(sql);
            return query.list();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            log.error("統計園區近半年每月入駐數量出錯了!", e);
            throw new DaoException("統計園區近半年每月入駐數量出錯了!", e);
        }
    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章