Mysql多列分组查询 示列详解

来源:互联网 发布:淘宝五分钟内拍下 编辑:程序博客网 时间:2024/05/16 17:58

一张表 按照时间,按照时间,id分组

源表:



 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SELECT
flowData.STORE_ID,
    flowData.CREATE_HOUR AS createHour,
    SUM(IN_COUNT) hourInCount,
    SUM(OUT_COUNT) AS hourOutCount
    
FROM
    T_IVA_PROJECT_PASSENGER_FLOW_DATA flowData
LEFT JOIN T_IVA_PROJECT_PASSENGER_FLOW_DIMENSION dimension ON flowData.STORE_ID = dimension.STORE_ID
AND flowData.IP_ADDRESS = dimension.IP_ADDRESS
WHERE
flowData.STORE_ID = '871l'AND dimension. STATUS = 1 
GROUP BY
    flowData.STORE_ID,
    flowData.CREATE_DATE,
    flowData.CREATE_HOUR
ORDER BY
    hourInCount DESC


按照谁分组就是重复的放在一起,作为一列

然而当分组有多个层次的时候,按照范围显示 比如按照日期和时间分组

我们先把不同的日期分组,然后在按照不同的时间分组 然后相同合并,此图(可以看出按照日期和时间) 时间有相同的显示 因为他们的日期不同 

假如仅仅按照时间的话 就不会有相同的时间了


 NormalText Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT
flowData.STORE_ID,
    flowData.CREATE_HOUR AS createHour,
flowData.CREATE_DATE as date,
    SUM(IN_COUNT) hourInCount,
    SUM(OUT_COUNT) AS hourOutCount
    
FROM
    T_IVA_PROJECT_PASSENGER_FLOW_DATA flowData
LEFT JOIN T_IVA_PROJECT_PASSENGER_FLOW_DIMENSION dimension ON flowData.STORE_ID = dimension.STORE_ID
AND flowData.IP_ADDRESS = dimension.IP_ADDRESS
WHERE
flowData.STORE_ID = '871l'AND dimension. STATUS = 1 
GROUP BY
    flowData.STORE_ID,
    flowData.CREATE_DATE,
    flowData.CREATE_HOUR
ORDER BY
    hourInCount DESC


仅仅按照日期的话: