博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个数据库查询需求
阅读量:6361 次
发布时间:2019-06-23

本文共 522 字,大约阅读时间需要 1 分钟。

hot3.png

    今天在做项目的时候,碰到了一个sql查询需求,具体情况如下:

    假设有一张表table,如下所示:

  

   id           price       name      ...  
1 9 jack ...
1 3 tom ...
2 8 tim ...
1 10 simo ..
2 7 scott ...

现在的需求是取出每种id,price最大的一行,比如上表加红的两行

如果表中只有id和price两列,那么可以用如下语句:(主要是group by的用法)

select id, max(price) from table where... group by id;

但是如果如上面的table表,还要显示name等信息,那么肯定不能用上面这么简单的语句了,解决方法如下(inner join):

select * from table t1 inner join (select id, max(price) price from table group by id) t2 on t1.id = t2.id and t1.price = t2.price

perfect!

转载于:https://my.oschina.net/chengshuguang/blog/225645

你可能感兴趣的文章
flutter 教程(一)flutter介绍
查看>>
CSS面试题目及答案
查看>>
【从蛋壳到满天飞】JS 数据结构解析和算法实现-Arrays(数组)
查看>>
Spring自定义注解从入门到精通
查看>>
笔记本触摸板滑动事件导致连滑的解决方式
查看>>
Runtime 学习:消息传递
查看>>
你了解BFC吗?
查看>>
linux ssh tunnel使用
查看>>
十、详解FFplay音视频同步
查看>>
自定义元素探秘及构建可复用组件最佳实践
查看>>
小猿圈Python教程之全面解析@property的使用
查看>>
mpvue开发小程序所遇问题及h5转化方案
查看>>
View和Activity的生命周期
查看>>
Throwable是一个怎样的类?
查看>>
三条代码 搞定 python 生成验证码
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Dwr3.0纯注解(纯Java Code配置)配置与应用浅析三之后端反向调用前端
查看>>
Ubuntu下安装遨游浏览器
查看>>
自定义Linux service脚本
查看>>