使用 row_number() 来自内部查询的 max(count)
max(count) from inner query using row_number()
我正在尝试选择在我的内部查询中具有最大计数的 src_cd
:
select count(*), src_cd
from innertable1
group by src_cd
上述查询的结果是:
cnt
src_cd
100
CCC
90
BBB
80
AAA
从上面的结果我想做一个
select *
from table1
where src_cd having max(cnt of src_cd from innertable1)
我也想用row_number()
来选2nd max, 3rd max等等
您可以使用 limit 1
和 order by 来选择最大的。
select count(*), src_cd
from innertable1
group by src_cd
order by 1 desc
limit 1
Order by 将按计数降序排列。
limit 将选择第一行。
您还可以使用子查询来计算下一个最大行数 row_number()
。
select src_cd as second_max
from (
select src_cd, row_number() over( order by cnt desc) as rownum
from (
select count(*) cnt, src_cd
from innertable1
group by src_cd
)rs
) rs2
where rownum=2 -- second MAX
我正在尝试选择在我的内部查询中具有最大计数的 src_cd
:
select count(*), src_cd
from innertable1
group by src_cd
上述查询的结果是:
cnt | src_cd |
---|---|
100 | CCC |
90 | BBB |
80 | AAA |
从上面的结果我想做一个
select *
from table1
where src_cd having max(cnt of src_cd from innertable1)
我也想用row_number()
来选2nd max, 3rd max等等
您可以使用 limit 1
和 order by 来选择最大的。
select count(*), src_cd
from innertable1
group by src_cd
order by 1 desc
limit 1
Order by 将按计数降序排列。 limit 将选择第一行。
您还可以使用子查询来计算下一个最大行数 row_number()
。
select src_cd as second_max
from (
select src_cd, row_number() over( order by cnt desc) as rownum
from (
select count(*) cnt, src_cd
from innertable1
group by src_cd
)rs
) rs2
where rownum=2 -- second MAX