回 帖 发 新 帖 刷新版面

主题:求一条sql语句在线等待

表1有如下字段

孔号    层底深度    地层单位   地层代号
zk1      50          第四系     Q4
zk1      60          第四系     Q4
zk1      90          第四系     Q4
zk1      120         二叠系     P
zk1      150         二叠系     P
zk1      200         寒武系     e
zk1      240         寒武系     e
zk1      280         侏罗系     J
zk1      320         志留系     z

现在我要用sql选出如下的记录(就是选出地层单位和地层代号相同的最大层底深度的记录)

孔号    层底深度    地层单位   地层代号
zk1      90          第四系     Q4
zk1      150         二叠系     P
zk1      240         寒武系     e
zk1      280         侏罗系     J
zk1      320         志留系     z


请问用sql语句如何实现

回复列表 (共6个回复)

沙发

select 孔号,max(层底深度) 层底深度,地层单位,地层代号
from 表1
group by 孔号,地层单位,地层代号

板凳

上面语句不对.
select * from 表1 , (select 地层单位,地层代号,max(层底深度) as 层底深度 from 表1 group by 地层单位,地层代号) as 表2
where 表1.地层单位=表2地层单位 and 表1.地层代号=表2.地层代号

3 楼

select * from 表 a where a.层底深度=(select max(b.层底深度) from 表 b where a.地层单位=b.地层单位 and a.地层代号=b.地层代号)
1楼也是可以的.

4 楼

1楼思路最简洁!

5 楼

没有最好的办法的时候,就用最愚蠢的办法查询撒。只不过要加重访问量。

6 楼

不错

我来回复

您尚未登录,请登录后再回复。点此登录或注册