这是我的帖子。如果我在我的问题中没有详细说明,请提前道歉。
要求是我需要编写SQL语句来实现组列中提到的结果。
AFE_CD STAGE_NO LEGEND GROUP_NO
40 1 STAGE 1
40 2 STAGE 1
40 3 STAGE 1
40 4 STAGE 1
40 5 STAGE 1
40 6 STAGE 1
40 7 STAGE 1
40 8 SKIP 2
40 9 STAGE 3
40 10 SKIP 4
40 11 STAGE 5
40 12 STAGE 5
40 13 STAGE 5
40 14 STAGE 5
40 15 STAGE 5
40 16 STAGE 5
50 1 STAGE 6
50 2 STAGE 6
50 3 STAGE 6
50 4 STAGE 6
50 5 STAGE 6
50 6 STAGE 6
50 7 STAGE 6
50 8 SKIP 7
50 9 STAGE 8
我尝试了各种dense_rank()选项,但没有运气。失败的尝试之一如下:(。
select t.*, DENSE_RANK() OVER ( ORDER BY legend desc ) rnk
from mytable t
mytable包含如上所示的数据。
感谢任何帮助/指示。
谢谢
答案 0 :(得分:2)
对于GROUP_NO
和LEGEND
订购的列表,您似乎希望对AFE_CD
或AFE_CD
次更改STAGE_NO
增加LAG
。一种解决方案是使用select
afe_cd,
stage_no,
legend,
sum(is_change) over (order by afe_cd, stage_no) as group_no
from
(
select
afe_cd,
stage_no,
legend,
case when legend = lag(legend) over (order by afe_cd, stage_no)
and afe_cd = lag(afe_cd) over (order by afe_cd, stage_no)
then 0 else 1 end as is_change
from mytable
)
order by afe_cd, stage_no;
检测更改,其中1表示更改,0表示不更改。然后构建一个总计这个。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
int rowHeight = 0;
if (tableView == secondTable) {
rowHeight = 62;
}
if (tableView == thirdTable) {
rowHeight = 72;
}
return rowHeight;
}