作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个表,其中包含重复列 ACCIDENT_REC_NUM 和 VEHICLE_REC_NUM 的所有行的编码号 (REC_NUM)。所以我需要从可以按这两个字段分组的所有行中获取代码。
这部分没问题,你可以通过这个查询来检查:
SELECT COUNT(REC_NUM) FROM SEQUENCE_EVENT WHERE ACCIDENT_REC_NUM IN (
SELECT ACCIDENT_REC_NUM
FROM (
select ACCIDENT_REC_NUM, VEHICLE_REC_NUM, COUNT(*) AS REPEAT from SEQUENCE_EVENT
GROUP BY ACCIDENT_REC_NUM, VEHICLE_REC_NUM
)
WHERE REPEAT > 1
)
所以,现在我必须排除每个组的第一行,因为我只需要重复行的 REC_NUM,所以第一行就可以了。
最佳答案
我强烈建议您使用分析函数来完成此操作。我认为以下内容明确地满足了您的要求:
select count(*)
from (select se.*,
count(*) over (partition by accident_rec_num, vehicle_rec_num) as repeat,
row_number() over (partition by accident_rec_num, vehicle_rec_num
order by rec_num) as seqnum
from sequence_event se
) t
where repeat > 1 and seqnum > 1;
我不能 100% 确定这是准确的查询,因为我不确定事故和车辆号码如何相互作用。
关于sql - 从组中排除第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24173757/
我是一名优秀的程序员,十分优秀!