2 caosouseyi caosouseyi 于 2017.09.01 00:46 提问

有关oracle数据表查询

test表 有违法类型 车牌号 违法时间等字段,对同一辆车的压线、超速只查询最早的那条,其它违法类型均查询?

5个回答

qq_40022874
qq_40022874   2017.09.01 08:38

select 违法类型,车牌号,min(时间) from test

qq_24029841
qq_24029841   2017.09.01 08:54

按时间排序,按违反类型分组

zy841958835
zy841958835   Ds   Rxr 2017.09.01 08:55

select * from (select count(*) n,违法类型,车牌号 from test group by 车牌号,违法类型 order by 时间) where n =1

Jamie_Jiang
Jamie_Jiang   2017.09.01 09:49

select 类型,车牌,min(时间) from test group by 车牌 having 违法类型='压线' union all
select 类型,车牌,min(时间) from test group by 车牌 having 违法类型='超速' union all
select 类型,车牌,时间 from test where 违法类型 not in('压线','超速')

自己的sql不好,可以参考下,我也不知道对不对 哈哈

nihao2007
nihao2007   2017.09.06 11:48

select *
from (select a.*,
row_number() over(partition by 车牌号, 违法类型,(case
when 违法类型 in
('压线', '超速') then
1
else
rowid
end) order by 违法时间 asc) rn
from test表 a)
where rn = 1;
这样应该能实现你的需求

sunbocong
sunbocong 应该是rownum不是rowid吧
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片