group by分组查询小结

1.按某一字段分组后查询某一条件下的所有数据:如下面的按照ReservePhone:手机号分组后,再查询是特定的手机号的所有数据

select ID , GroupCode,HotelCode,AccountNo,ReservePhone,ReserveName,RoomNo,RoomType from Res_RoomResource 
where ID in (select (ID) from Res_RoomResource where GroupCode='0001' and hotelcode='021002' group by  ReservePhone,ID) 
and ReservePhone='18537*****';

下面这样查的话只能查询到一条记录
select ID , GroupCode,HotelCode,AccountNo,ReservePhone,ReserveName,RoomNo,RoomType from Res_RoomResource 
where ID in (select min(ID) from Res_RoomResource where GroupCode='0001' and hotelcode='021002' group by  ReservePhone,ID) 
and ReservePhone='18537693630';--min(ID) 或者Max(ID)

补充:

1.对于表TA中存在主键id,所以可利用主键id来查询:

select ID , CODE , VALUE ,  DESC  , DATE form TA where ID in (select min(ID) from TA group by CODE , VALUE) ;

2.对于表TB中,表不存在主键,则查询方式为:

select min(ID) ID, CODE , VALUE ,  min(DESC) DESC ,min( DATE) DATE  from TA group by CODE , VALUE ;

总结:

方式1一般都适用 于单表的查询,因为一般建表的时候都会建主键;对于视图,联查的时候,方式一可能就不合适了,就可以用方式2

posted @   朕在coding  阅读(722)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示