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
group by分组后获得每组中符合条件的那条记录的更多相关文章
- 1.(group by)如何让group by分组后,每组中的所有数据都显示出来
问题描述:表如下,如何让这个表按device_id这个字段分组,且组中的每条数据都查寻出来?(假如说这个表名为:devicedata) 错误答案:select * from devicedata GR ...
- 2.(group by)如何让分组后,每组中的数据按时间倒序排列(group by和 order by的分组按排列)
比如说有表devicedata: 问题: 现在我想将devicedata这个表中的数据,先按device_id这个字段分组,然后每组中的数据按时间字段ts从大到小的排列, 如何解决呢? 错误的sql: ...
- sql 用Group by分组后,取每组的前几条记录
转自:http://blog.163.com/jeson_lwj/blog/static/135761083201052411115783/ --查询每门课程的前2名成绩 CREATE TABLE S ...
- SQL 分组后获取每组中最大值
场景:sql server 2008 drop table ID CREATE TABLE ID ( id ,) not null, code int , D date, PRIMARY KEY (i ...
- SQL,group by分组后分别计算组内不同值的数量
select name as 姓名,sum( case when cargo='笔' then 1 else 0 end ) as 笔,sum( case when cargo='橡皮' then 1 ...
- SQL 分组后,获取每组中的最大值对应的数据
select gr,num,dt,(select bys from test where gr=b.gr and dt=b.dt) bys from ( select gr,count(0) num, ...
- oracle分组后取某组中最大的值
查询username,根据fundcode分组,按照date倒序,取date最大的一条数据 select * from ( select username, row_number() over(par ...
- 用Group by分组后,取每组的前3条记录,怎么取?
使用子查询进行查询 SELECT * FROM home_content a WHERE ( SELECT count(id) FROM home_content WHERE class_link = ...
- MSSQL 分组后取每组第一条(group by order by)
查询中经常遇到这种查询,分组后取每组第一条.分享下一个SQL语句: --根据 x 分组后.根据 y 排序后取第一条 select * from ( select ROW_NUMBER() over(p ...
随机推荐
- C++ const用法
C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的.如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助. 1.c ...
- Zookeeper集群搭建步骤及相关知识点深入了解
1.zookeeper概念 zookeeper是一个分布式协调服务:a:zookeeper是为别的分布式程序服务的 b:zookeeper本身就是一个分布式程序(只要半数以上节点存活,zookeepe ...
- 咸鱼入门到放弃7--jsp<二>jsp常用标签
一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...
- UOJ#110. 【APIO2015】Bali Sculptures 贪心 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/UOJ110.html 题解 我们发现n=2000 的子任务保证A=1! 分两种情况讨论: $n\leq 100$ ...
- 2.使用RNN做诗歌生成
诗歌生成比分类问题要稍微麻烦一些,而且第一次使用RNN做文本方面的问题,还是有很多概念性的东西~~~ 数据下载: 链接:https://pan.baidu.com/s/1uCDup7U5rGuIlIb ...
- KaliLinuxNetHunter教程下载相关资源
KaliLinuxNetHunter教程下载相关资源 当用户将刷机工具准备完后,则需要下载ROM包.ROM是ROM image(只读内存镜像)的简称,常用于手机定制系统.一般手机刷机的过程,就是将只读 ...
- C# - 获取windows系统特殊文件夹路径
一.路径分类 1.绝对路径 完整路径,从磁盘符号开始,如:C:\Windows 2.相对路径 以当前路径为起点,不包含磁盘符号,通常使用“..\”符号来访问上级目录中的文件或文件夹. ../Windo ...
- react_app 项目开发 (7)_难点集合
/src/App/Admin/Header 布局 import {Row, Col} from "antd" <div className="header_box& ...
- vue_组件间通信:自定义事件、消息发布与订阅、槽
自定义事件 只能用于 子组件 向 父组件 发送数据 可以取代函数类型的 props 在父组件: 给子组件@add-todo-event="addTodo" 在子组件: 相关方法中, ...
- 解决ajax 跨域请求问题
浏览器console报错: has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is 解决: 服务端加入代 ...