group by分组后获得每组中符合条件的那条记录
当group by单独使用时,只显示出每组的第一条记录。
如下,未分组时查询出两条记录
SELECT info.id, info.switch_id, info.port_id, info.mac_addr, info.ip, info.rec_time, info.dev_name, info.is_active, info.port_type, info.real_type, cfg.port_describe, cfg.port_value, switchers.name, switchers.switch_ip FROM ( T_NET_SWITCHBOARD_PORT_INFO AS info LEFT JOIN T_NET_SWITCHBOARD_PORT_CFG AS cfg ON info.port_id = cfg.port_id ) LEFT JOIN T_NET_SWITCHBOARD_CFG AS switchers ON info.switch_id = switchers.switch_id WHERE info.mac_addr != '' AND info.`real_type` = 0 AND info.port_type != 1 AND info.dev_name LIKE "%" "%" AND info.ip LIKE "%" "%" AND info.mac_addr LIKE "%" "%" AND info.mac_addr LIKE '%00:10:7F:52:0D:FD%'
结果
  id       switch_id  port_id  mac_addr               ip                         rec_time                 dev_name  is_active  port_type  real_type  port_describe          port_value  name                           switch_ip      
------  ---------  -------  -----------------  --------------  -------------------  --------  ---------  ---------  ---------  ---------------------  ----------  -----------------------------  
 59591         18     3697  00:10:7F:52:0D:FD   168.160.15.197   2018-08-08 15:40:32                    0          2          0  GigabitEthernet5/0/2           33  地下UPS室-华为S9306                 168.160.15.66  
 59798         20     3758  00:10:7F:52:0D:FD                            2018-08-08 15:47:16                    0          0          0  GigabitEthernet0/0/14          19  地下总控室-华为S5700-1                168.160.15.76  
这个时候加上group by 默认加载显示第一条,如果我想要port_type最小的那条该如何实现?
先对分组前进行排序,然后再分组获取。
SELECT a.* FROM (SELECT info.id, info.switch_id, info.port_id, info.mac_addr, info.ip, info.rec_time, info.dev_name, info.is_active, info.port_type, info.real_type, cfg.port_describe, cfg.port_value, switchers.name, switchers.switch_ip FROM T_NET_SWITCHBOARD_PORT_INFO AS info LEFT JOIN T_NET_SWITCHBOARD_PORT_CFG AS cfg ON info.port_id = cfg.port_id LEFT JOIN T_NET_SWITCHBOARD_CFG AS switchers ON info.switch_id = switchers.switch_id WHERE (info.mac_addr != '' AND info.`real_type` = 0 AND info.port_type != 1 AND info.mac_addr LIKE '%00:10:7F:52:0D:FD%') ORDER BY info.port_type -- 先排序再分组 ) a GROUP BY a.mac_addr ORDER BY a.switch_ip, a.port_describe
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号