Sql ,sqlserver根据一个字段分组查询
来源:互联网 发布:电脑装mac os 编辑:程序博客网 时间:2024/06/16 10:24
分享一个链接:http://blog.sina.com.cn/s/blog_6bd7d943010133sa.html
我有如下表
要求根据ksdm进行分组查询:
首先,说下思路。错误的思路:select * from hxtz_ywxx whereYQ = 1AND ny <='2017-01-03' group by KSDM 很显然这样错了。Order by 实质把 该分组类别字段中相同值合并为一个。然后查询该分组的最大,最下值等等,都构成了一个分组对应一个属性值这样的记录,而不是一对多,这样在数据库中存储不了。那怎么根据分组查询,某组最大值。关键点【多表查询:先查询出最大分数,该分组(select ksdm,max(ny) time1)g构成一个表,然后再联合该表进行查询(where time1=ny and g.ksdm =本table.ksdm)】。就是这种思路。
然后我们查询一个这样的记录,不同分组的最大ny下的最大sbsj的记录,要查询出这样的记录要有最大ny,以及最大ny下的最大sbsj,ksdm。
见代码,
select a.N_ID,A.KSDM,a.KSMC,a.xzzz,a.xzhsz,a.xznsy,a.ylms,a.ylgg,A.NY
from hxtz_xzcy a,
(select ksdm,max(sbsj)time2
from hxtz_xzcy e,
(select KSDM ks,MAX(NY) time1
from hxtz_xzCy
where YQ = 1 AND ny <='2017-01-03' group by KSDM)j
where e.ksdm=j.ks and j.time1=e.ny group by ksdm)g,
(select KSDM ks,MAX(NY) time1 from hxtz_xzcy where YQ = 1 AND ny <='2017-01-03' group by KSDM)f
where a.sbsj=g.time2 and a.ksdm = g.ksdm and f.time1=a.ny and f.ks = a.ksdm order by NY,SBSJ ASC
- Sql ,sqlserver根据一个字段分组查询
- SQL根据某个字段分组查询:
- sql语句在sqlserver中根据字段名查询,看哪些表包含了这个字段
- oracle 根据某个字段分组,再根据另一个字段排序的sql查询 即 组内排序
- SQL 根据时间戳分组查询
- sql 多个字段分组查询语句
- sql:根据字段查询表名
- sql根据字段查询重复记录
- mysql根据一个字段查询重复数据
- orcale 根据截取字段,分组
- 【SQL】按字段分组查询符合条件记录的方法
- sql根据年月分组
- SQL分组合并字段
- sql 分组字段合并
- mysql group by分组,根据一个字段分组 ,又想得到另一个字段的最大或者最小。如何解决。
- sql 分组合并字符串字段 分享一个小技巧
- SqlServer字段说明查询
- sqlserver 查询多个字段数据重复sql语句
- 使用webpack小实例
- 文章标题
- 【Thinkphp】redirect重定向问题
- pinpoint Agent-TCP连接分析
- NSSA区域处于边界引入默认路由该怎么处理呢?
- Sql ,sqlserver根据一个字段分组查询
- openstack 管理二十二 - cinder 连接多个存储 backend
- Linux内核IP Queue机制的分析(二)——用户态处理并回传数据包
- 博览网C++课程 第二周
- Linux中的权限发布啦!
- python遇到UnicodeDecodeError错误的解决办法
- 自定义控件其实很简单 三
- https 之 ssl安全证书的获取和安装
- shiro简单配置