| Country | Contributions | Between | Climbers | Crags | Summits | Climbs | Ascents | |
|---|---|---|---|---|---|---|---|---|
| 1 | USA | 1526 | 20th November 2025 – 4th November 2026 | 48 | 20 | 0 | 88 | 98 |
| 2 | Australia | 767 | 27th September 2025 – 29th June 2026 | 6 | 38 | 0 | 61 | 33 |
| 3 | United Kingdom | 625 | 19th November 2025 – 4th November 2026 | 34 | 14 | 0 | 24 | 49 |
| 4 | Switzerland | 308 | 24th January 2026 – 4th November 2026 | 6 | 3 | 0 | 14 | 38 |
| 5 | France | 300 | 6th January 2026 – 4th November 2026 | 15 | 3 | 0 | 12 | 34 |
| 6 | Austria | 210 | 12th November 2025 – 22nd June 2026 | 5 | 2 | 0 | 8 | 22 |
| 7 | Italy | 163 | 18th November 2025 – 2nd November 2026 | 9 | 3 | 0 | 12 | 12 |
| 8 | Pakistan | 118 | 11th April 2026 – 26th April 2026 | 0 | 0 | 0 | 1 | 7 |
| 9 | Spain | 105 | 20th February 2026 – 16th May 2026 | 5 | 0 | 0 | 10 | 11 |
| 10 | Germany | 103 | 3rd February 2026 – 26th June 2026 | 7 | 0 | 0 | 7 | 10 |
| Date | Time | User | Type | Name | Attribute | ||
|---|---|---|---|---|---|---|---|
| 1501 | 16th May 2026 | 14:24:11 UTC | ben_sandi | ascent | Noah Wheeler's ascent of Burden of Dreams | notes_pretty | |
|
Before
<h3>References</h3>
<p>[1] Send Post! <a href="https://www.instagram.com/p/DYZsWOLABiS/" rel="noopener noreferrer">https://www.instagram.com/p/DYZsWOLABiS/</a></p>
<p>[2] Noah got very close on his second session <a href="https://www.instagram.com/reel/DRkVMNOgFvV/" rel="noopener noreferrer">https://www.instagram.com/reel/DRkVMNOgFvV/</a></p>
<p>[3] <a href="https://tensionclimbing.com/blogs/blog/reflections-from-finland" rel="noopener noreferrer">https://tensionclimbing.com/blogs/blog/reflections-from-finland</a></p>
<p>[4] Vlog from Noah's second trip with <a href="/climber/1202/yannick-flohé" rel="noopener noreferrer">Yannick Flohé</a> <a href="https://www.youtube.com/watch?v=wJ0yC74D33s" rel="noopener noreferrer">https://www.youtube.com/watch?v=wJ0yC74D33s</a></p>
<p>[5]
Footage from a close go <a href="https://www.instagram.com/reel/DYNn5YNsM1g/" rel="noopener noreferrer">https://www.instagram.com/reel/DYNn5YNsM1g/</a></p>
<p>[6] Another agonisingly close attempt with a small dab <a href="https://www.instagram.com/p/DYU4ue7oHik/" rel="noopener noreferrer">https://www.instagram.com/p/DYU4ue7oHik/</a></p>
After
<p>Noah first visited Finland with <a href="/climber/152/hamish-mcarthur" rel="noopener noreferrer">Hamish McArthur</a> in November 2025. Despite struggling with conditions, he made a very promising link on only his second session [2]. In May 2026, he returned to Burden with <a href="/climber/1202/yannick-flohé" rel="noopener noreferrer">Yannick Flohé</a>, coming agonisingly close when he climbed the boulder but dabbed near the start [6]. Two attempts later, he sent [1].</p>
<h3>References</h3>
<p>[1] Send Post! <a href="https://www.instagram.com/p/DYZsWOLABiS/" rel="noopener noreferrer">https://www.instagram.com/p/DYZsWOLABiS/</a></p>
<p>[2] Noah got very close on his second session <a href="https://www.instagram.com/reel/DRkVMNOgFvV/" rel="noopener noreferrer">https://www.instagram.com/reel/DRkVMNOgFvV/</a></p>
<p>[3] <a href="https://tensionclimbing.com/blogs/blog/reflections-from-finland" rel="noopener noreferrer">https://tensionclimbing.com/blogs/blog/reflections-from-finland</a></p>
<p>[4] Vlog from Noah's second trip with <a href="/climber/1202/yannick-flohé" rel="noopener noreferrer">Yannick Flohé</a> <a href="https://www.youtube.com/watch?v=wJ0yC74D33s" rel="noopener noreferrer">https://www.youtube.com/watch?v=wJ0yC74D33s</a></p>
<p>[5]
Footage from a close go <a href="https://www.instagram.com/reel/DYNn5YNsM1g/" rel="noopener noreferrer">https://www.instagram.com/reel/DYNn5YNsM1g/</a></p>
<p>[6] Another agonisingly close attempt with a small dab <a href="https://www.instagram.com/p/DYU4ue7oHik/" rel="noopener noreferrer">https://www.instagram.com/p/DYU4ue7oHik/</a></p>
|
|||||||
| 1502 | 16th May 2026 | 14:24:11 UTC | ben_sandi | ascent | Noah Wheeler's ascent of Burden of Dreams | notes | |
|
Before
### References
[1] Send Post! [https://www.instagram.com/p/DYZsWOLABiS/](https://www.instagram.com/p/DYZsWOLABiS/)
[2] Noah got very close on his second session [https://www.instagram.com/reel/DRkVMNOgFvV/](https://www.instagram.com/reel/DRkVMNOgFvV/)
[3] [https://tensionclimbing.com/blogs/blog/reflections-from-finland](https://tensionclimbing.com/blogs/blog/reflections-from-finland)
[4] Vlog from Noah's second trip with [Yannick Flohé](/climber/1202/yannick-flohé) [https://www.youtube.com/watch?v=wJ0yC74D33s](https://www.youtube.com/watch?v=wJ0yC74D33s)
[5]
Footage from a close go [https://www.instagram.com/reel/DYNn5YNsM1g/](https://www.instagram.com/reel/DYNn5YNsM1g/)
[6] Another agonisingly close attempt with a small dab [https://www.instagram.com/p/DYU4ue7oHik/](https://www.instagram.com/p/DYU4ue7oHik/)
After
Noah first visited Finland with [Hamish McArthur](/climber/152/hamish-mcarthur) in November 2025. Despite struggling with conditions, he made a very promising link on only his second session [2]. In May 2026, he returned to Burden with [Yannick Flohé](/climber/1202/yannick-flohé), coming agonisingly close when he climbed the boulder but dabbed near the start [6]. Two attempts later, he sent [1].
### References
[1] Send Post! [https://www.instagram.com/p/DYZsWOLABiS/](https://www.instagram.com/p/DYZsWOLABiS/)
[2] Noah got very close on his second session [https://www.instagram.com/reel/DRkVMNOgFvV/](https://www.instagram.com/reel/DRkVMNOgFvV/)
[3] [https://tensionclimbing.com/blogs/blog/reflections-from-finland](https://tensionclimbing.com/blogs/blog/reflections-from-finland)
[4] Vlog from Noah's second trip with [Yannick Flohé](/climber/1202/yannick-flohé) [https://www.youtube.com/watch?v=wJ0yC74D33s](https://www.youtube.com/watch?v=wJ0yC74D33s)
[5]
Footage from a close go [https://www.instagram.com/reel/DYNn5YNsM1g/](https://www.instagram.com/reel/DYNn5YNsM1g/)
[6] Another agonisingly close attempt with a small dab [https://www.instagram.com/p/DYU4ue7oHik/](https://www.instagram.com/p/DYU4ue7oHik/)
Diff
--- before
|
|||||||
| 1503 | 16th May 2026 | 14:13:23 UTC | ben_sandi | ascent | Noah Wheeler's ascent of Burden of Dreams | Partner | |
|
Before
None
After
1202
|
|||||||
| 1504 | 16th May 2026 | 14:11:59 UTC | ben_sandi | ascent | Noah Wheeler's ascent of Burden of Dreams | ascent_style_id | |
|
Before
5
After
1
|
|||||||
| 1505 | 16th May 2026 | 14:11:44 UTC | ben_sandi | ascent | Noah Wheeler's ascent of Burden of Dreams | ascent_dt_end | |
|
Before
2027-01-01
After
2026-05-16
|
|||||||
| 1506 | 16th May 2026 | 14:11:44 UTC | ben_sandi | ascent | Noah Wheeler's ascent of Burden of Dreams | ascent_dt_start | |
|
Before
2025-01-01
After
2026-05-15
|
|||||||
| 1507 | 16th May 2026 | 14:10:48 UTC | ben_sandi | media | https://www.instagram.com/p/DYZsWOLABiS/ | dt_pretty | |
|
Before
None
After
|
|||||||
| 1508 | 16th May 2026 | 14:10:48 UTC | ben_sandi | media | https://www.instagram.com/p/DYZsWOLABiS/ | missing_right_to_reproduce | |
|
Before
None
After
false
|
|||||||
| 1509 | 16th May 2026 | 14:10:48 UTC | ben_sandi | media | https://www.instagram.com/p/DYZsWOLABiS/ | url | |
|
Before
None
After
https://www.instagram.com/p/DYZsWOLABiS/
|
|||||||
| 1510 | 16th May 2026 | 14:10:47 UTC | ben_sandi | ascent | Noah Wheeler's ascent of Burden of Dreams | notes_pretty | |
|
Before
<h3>References</h3>
<p>[1] Noah got very close on his second session <a href="https://www.instagram.com/reel/DRkVMNOgFvV/" rel="noopener noreferrer">https://www.instagram.com/reel/DRkVMNOgFvV/</a></p>
<p>[2] <a href="https://tensionclimbing.com/blogs/blog/reflections-from-finland" rel="noopener noreferrer">https://tensionclimbing.com/blogs/blog/reflections-from-finland</a></p>
<p>[3] Vlog from Noah's second trip with <a href="/climber/1202/yannick-flohé" rel="noopener noreferrer">Yannick Flohé</a> <a href="https://www.youtube.com/watch?v=wJ0yC74D33s" rel="noopener noreferrer">https://www.youtube.com/watch?v=wJ0yC74D33s</a></p>
<p>[4]
Footage from a close go <a href="https://www.instagram.com/reel/DYNn5YNsM1g/" rel="noopener noreferrer">https://www.instagram.com/reel/DYNn5YNsM1g/</a></p>
<p>[5] Another agonisingly close attempt with a small dab <a href="https://www.instagram.com/p/DYU4ue7oHik/" rel="noopener noreferrer">https://www.instagram.com/p/DYU4ue7oHik/</a></p>
After
<h3>References</h3>
<p>[1] Send Post! <a href="https://www.instagram.com/p/DYZsWOLABiS/" rel="noopener noreferrer">https://www.instagram.com/p/DYZsWOLABiS/</a></p>
<p>[2] Noah got very close on his second session <a href="https://www.instagram.com/reel/DRkVMNOgFvV/" rel="noopener noreferrer">https://www.instagram.com/reel/DRkVMNOgFvV/</a></p>
<p>[3] <a href="https://tensionclimbing.com/blogs/blog/reflections-from-finland" rel="noopener noreferrer">https://tensionclimbing.com/blogs/blog/reflections-from-finland</a></p>
<p>[4] Vlog from Noah's second trip with <a href="/climber/1202/yannick-flohé" rel="noopener noreferrer">Yannick Flohé</a> <a href="https://www.youtube.com/watch?v=wJ0yC74D33s" rel="noopener noreferrer">https://www.youtube.com/watch?v=wJ0yC74D33s</a></p>
<p>[5]
Footage from a close go <a href="https://www.instagram.com/reel/DYNn5YNsM1g/" rel="noopener noreferrer">https://www.instagram.com/reel/DYNn5YNsM1g/</a></p>
<p>[6] Another agonisingly close attempt with a small dab <a href="https://www.instagram.com/p/DYU4ue7oHik/" rel="noopener noreferrer">https://www.instagram.com/p/DYU4ue7oHik/</a></p>
|
|||||||
| 1511 | 16th May 2026 | 14:10:47 UTC | ben_sandi | ascent | Noah Wheeler's ascent of Burden of Dreams | notes | |
|
Before
### References
[1] Noah got very close on his second session [https://www.instagram.com/reel/DRkVMNOgFvV/](https://www.instagram.com/reel/DRkVMNOgFvV/)
[2] [https://tensionclimbing.com/blogs/blog/reflections-from-finland](https://tensionclimbing.com/blogs/blog/reflections-from-finland)
[3] Vlog from Noah's second trip with [Yannick Flohé](/climber/1202/yannick-flohé) [https://www.youtube.com/watch?v=wJ0yC74D33s](https://www.youtube.com/watch?v=wJ0yC74D33s)
[4]
Footage from a close go [https://www.instagram.com/reel/DYNn5YNsM1g/](https://www.instagram.com/reel/DYNn5YNsM1g/)
[5] Another agonisingly close attempt with a small dab [https://www.instagram.com/p/DYU4ue7oHik/](https://www.instagram.com/p/DYU4ue7oHik/)
After
### References
[1] Send Post! [https://www.instagram.com/p/DYZsWOLABiS/](https://www.instagram.com/p/DYZsWOLABiS/)
[2] Noah got very close on his second session [https://www.instagram.com/reel/DRkVMNOgFvV/](https://www.instagram.com/reel/DRkVMNOgFvV/)
[3] [https://tensionclimbing.com/blogs/blog/reflections-from-finland](https://tensionclimbing.com/blogs/blog/reflections-from-finland)
[4] Vlog from Noah's second trip with [Yannick Flohé](/climber/1202/yannick-flohé) [https://www.youtube.com/watch?v=wJ0yC74D33s](https://www.youtube.com/watch?v=wJ0yC74D33s)
[5]
Footage from a close go [https://www.instagram.com/reel/DYNn5YNsM1g/](https://www.instagram.com/reel/DYNn5YNsM1g/)
[6] Another agonisingly close attempt with a small dab [https://www.instagram.com/p/DYU4ue7oHik/](https://www.instagram.com/p/DYU4ue7oHik/)
Diff
--- before
|
|||||||
| 1512 | 16th May 2026 | 14:04:16 UTC | ben_sandi | list | Crags Without Coordinates | list_description_pretty | |
|
Before
<p>This is a list of crags that have no location coordinates. </p>
<p>Although we would prefer to have all crags tagged with coordinates, some crags have secret locations. Here we have added a broad 'country' meta. </p>
<p>There is another list of crags without Coordinates OR Country meta, here: <a href="/list/115/crags-without-coordinates-or-country-meta" rel="noopener noreferrer">/list/115/crags-without-coordinates-or-country-meta</a></p>
After
<p>This is a list of crags that have no location coordinates. </p>
<p>Although we would prefer to have all crags tagged with coordinates, some crags have secret locations. In those cases we have added a broad 'country' meta. </p>
<p>Here is another list of crags without Coordinates OR Country meta: <a href="/list/115/crags-without-coordinates-or-country-meta" rel="noopener noreferrer">/list/115/crags-without-coordinates-or-country-meta</a></p>
|
|||||||
| 1513 | 16th May 2026 | 14:04:16 UTC | ben_sandi | list | Crags Without Coordinates | list_description | |
|
Before
This is a list of crags that have no location coordinates.
Although we would prefer to have all crags tagged with coordinates, some crags have secret locations. Here we have added a broad 'country' meta.
There is another list of crags without Coordinates OR Country meta, here: [/list/115/crags-without-coordinates-or-country-meta](/list/115/crags-without-coordinates-or-country-meta)
After
This is a list of crags that have no location coordinates.
Although we would prefer to have all crags tagged with coordinates, some crags have secret locations. In those cases we have added a broad 'country' meta.
Here is another list of crags without Coordinates OR Country meta: [/list/115/crags-without-coordinates-or-country-meta](/list/115/crags-without-coordinates-or-country-meta)
Diff
--- before
|
|||||||
| 1514 | 16th May 2026 | 14:03:48 UTC | ben_sandi | list | Crags Without Coordinates | list_description_pretty | |
|
Before
<p>This is a list of crags that have no location coordinates. </p>
<p>Some crags in this list have secret locations so we have added a broad 'country' meta. </p>
<p>I have created another list of crags without Coordinates OR Country meta, here: <a href="/list/115/crags-without-coordinates-or-country-meta" rel="noopener noreferrer">/list/115/crags-without-coordinates-or-country-meta</a></p>
After
<p>This is a list of crags that have no location coordinates. </p>
<p>Although we would prefer to have all crags tagged with coordinates, some crags have secret locations. Here we have added a broad 'country' meta. </p>
<p>There is another list of crags without Coordinates OR Country meta, here: <a href="/list/115/crags-without-coordinates-or-country-meta" rel="noopener noreferrer">/list/115/crags-without-coordinates-or-country-meta</a></p>
|
|||||||
| 1515 | 16th May 2026 | 14:03:48 UTC | ben_sandi | list | Crags Without Coordinates | list_description | |
|
Before
This is a list of crags that have no location coordinates.
Some crags in this list have secret locations so we have added a broad 'country' meta.
I have created another list of crags without Coordinates OR Country meta, here: [/list/115/crags-without-coordinates-or-country-meta](/list/115/crags-without-coordinates-or-country-meta)
After
This is a list of crags that have no location coordinates.
Although we would prefer to have all crags tagged with coordinates, some crags have secret locations. Here we have added a broad 'country' meta.
There is another list of crags without Coordinates OR Country meta, here: [/list/115/crags-without-coordinates-or-country-meta](/list/115/crags-without-coordinates-or-country-meta)
Diff
--- before
|
|||||||
| 1516 | 16th May 2026 | 14:01:45 UTC | ben_sandi | list | Crags Without Coordinates | list_definition | |
|
Before
select
'<a href="' || c.url || '">' || c.crag_name || '</a>' as Crag
,country.country as "Country Meta"
,coalesce(cc.cnt_climbs, 0) as Climbs
,case
when c.ukc_url is not null then '<a href="' || c.ukc_url || '">UKC</a>'
else null
end as UKC
,case
when c.eight_a_nu_url is not null then '<a href="' || c.eight_a_nu_url || '">8a.nu</a>'
else null
end as "8a.nu"
,case
when w.thecrag_url is not null then '<a href="' || w.thecrag_url || '">theCrag</a>'
else null
end as "theCrag"
,case
when w.crags27_url is not null then '<a href="' || w.crags27_url || '">27crags</a>'
else null
end as "27crags"
from
crags c
left join (
select
cl.crag_id
,count(*) as cnt_climbs
from
climbs cl
where
cl.deleted_on is null
group by
cl.crag_id
) cc
on cc.crag_id = c.crag_id
left join (
select
cm.crag_id
,max(co.name) as country
from
crag_meta cm
inner join crag_meta_keys cmk
on cm.crag_meta_key_id = cmk.crag_meta_key_id
inner join countries co
on cm.value = co.country_id::varchar
where
cmk.key = 'Country'
group by
cm.crag_id
) country
on country.crag_id = c.crag_id
left join (
select
cm.crag_id
,max(case when cm.value ilike '%thecrag.com%' then cm.value end) as thecrag_url
,max(
case
when cm.value ilike '%27crags.com%'
or cm.value ilike '%thetopo.com%'
then cm.value
end
) as crags27_url
from
crag_meta cm
where
cm.crag_meta_key_id = 1
group by
cm.crag_id
) w
on w.crag_id = c.crag_id
where
c.deleted_on is null
and c.group_crag_id is null
and c.latitude is null
and c.longitude is null
order by
coalesce(cc.cnt_climbs, 0) desc
,c.crag_name
After
select
'<a href="' || c.url || '">' || c.crag_name || '</a>' as Crag
,country.country as "Country Meta"
,coalesce(cc.cnt_climbs, 0) as Climbs
,case
when c.ukc_url is not null then '<a href="' || c.ukc_url || '">UKC</a>'
else null
end as UKC
,case
when c.eight_a_nu_url is not null then '<a href="' || c.eight_a_nu_url || '">8a.nu</a>'
else null
end as "8a.nu"
from
crags c
left join (
select
cl.crag_id
,count(*) as cnt_climbs
from
climbs cl
where
cl.deleted_on is null
group by
cl.crag_id
) cc
on cc.crag_id = c.crag_id
left join (
select
cm.crag_id
,max(co.name) as country
from
crag_meta cm
inner join crag_meta_keys cmk
on cm.crag_meta_key_id = cmk.crag_meta_key_id
inner join countries co
on cm.value = co.country_id::varchar
where
cmk.key = 'Country'
group by
cm.crag_id
) country
on country.crag_id = c.crag_id
where
c.deleted_on is null
and c.group_crag_id is null
and c.latitude is null
and c.longitude is null
order by
coalesce(cc.cnt_climbs, 0) desc
,c.crag_name
Diff
--- before
|
|||||||
| 1517 | 16th May 2026 | 14:00:26 UTC | ben_sandi | crag | Green Lane | Website | |
|
Before
None
After
test.com
|
|||||||
| 1518 | 16th May 2026 | 13:58:11 UTC | ben_sandi | list | Crags Without Coordinates | list_definition | |
|
Before
select
'<a href="' || c.url || '">' || c.crag_name || '</a>' as Crag
,coalesce(cc.cnt_climbs, 0) as Climbs
,country.country as Country
,case
when c.ukc_url is not null then '<a href="' || c.ukc_url || '">UKC</a>'
else null
end as UKC
,case
when c.eight_a_nu_url is not null then '<a href="' || c.eight_a_nu_url || '">8a.nu</a>'
else null
end as "8a.nu"
,case
when w.thecrag_url is not null then '<a href="' || w.thecrag_url || '">theCrag</a>'
else null
end as "theCrag"
,case
when w.crags27_url is not null then '<a href="' || w.crags27_url || '">27crags</a>'
else null
end as "27crags"
from
crags c
left join (
select
cl.crag_id
,count(*) as cnt_climbs
from
climbs cl
where
cl.deleted_on is null
group by
cl.crag_id
) cc
on cc.crag_id = c.crag_id
left join (
select
cm.crag_id
,max(co.name) as country
from
crag_meta cm
inner join crag_meta_keys cmk
on cm.crag_meta_key_id = cmk.crag_meta_key_id
inner join countries co
on cm.value = co.country_id::varchar
where
cmk.key = 'Country'
group by
cm.crag_id
) country
on country.crag_id = c.crag_id
left join (
select
cm.crag_id
,max(case when cm.value ilike '%thecrag.com%' then cm.value end) as thecrag_url
,max(
case
when cm.value ilike '%27crags.com%'
or cm.value ilike '%thetopo.com%'
then cm.value
end
) as crags27_url
from
crag_meta cm
where
cm.crag_meta_key_id = 1
group by
cm.crag_id
) w
on w.crag_id = c.crag_id
where
c.deleted_on is null
and c.group_crag_id is null
and c.latitude is null
and c.longitude is null
order by
coalesce(cc.cnt_climbs, 0) desc
,c.crag_name
After
select
'<a href="' || c.url || '">' || c.crag_name || '</a>' as Crag
,country.country as "Country Meta"
,coalesce(cc.cnt_climbs, 0) as Climbs
,case
when c.ukc_url is not null then '<a href="' || c.ukc_url || '">UKC</a>'
else null
end as UKC
,case
when c.eight_a_nu_url is not null then '<a href="' || c.eight_a_nu_url || '">8a.nu</a>'
else null
end as "8a.nu"
,case
when w.thecrag_url is not null then '<a href="' || w.thecrag_url || '">theCrag</a>'
else null
end as "theCrag"
,case
when w.crags27_url is not null then '<a href="' || w.crags27_url || '">27crags</a>'
else null
end as "27crags"
from
crags c
left join (
select
cl.crag_id
,count(*) as cnt_climbs
from
climbs cl
where
cl.deleted_on is null
group by
cl.crag_id
) cc
on cc.crag_id = c.crag_id
left join (
select
cm.crag_id
,max(co.name) as country
from
crag_meta cm
inner join crag_meta_keys cmk
on cm.crag_meta_key_id = cmk.crag_meta_key_id
inner join countries co
on cm.value = co.country_id::varchar
where
cmk.key = 'Country'
group by
cm.crag_id
) country
on country.crag_id = c.crag_id
left join (
select
cm.crag_id
,max(case when cm.value ilike '%thecrag.com%' then cm.value end) as thecrag_url
,max(
case
when cm.value ilike '%27crags.com%'
or cm.value ilike '%thetopo.com%'
then cm.value
end
) as crags27_url
from
crag_meta cm
where
cm.crag_meta_key_id = 1
group by
cm.crag_id
) w
on w.crag_id = c.crag_id
where
c.deleted_on is null
and c.group_crag_id is null
and c.latitude is null
and c.longitude is null
order by
coalesce(cc.cnt_climbs, 0) desc
,c.crag_name
Diff
--- before
|
|||||||
| 1519 | 16th May 2026 | 13:56:08 UTC | ben_sandi | list | Crags Without Coordinates | list_definition | |
|
Before
select
'<a href="' || c.url || '">' || c.crag_name || '</a>' as Crag
,coalesce(cc.cnt_climbs, 0) as Climbs
,case
when c.ukc_url is not null then '<a href="' || c.ukc_url || '">UKC</a>'
else null
end as UKC
,case
when c.eight_a_nu_url is not null then '<a href="' || c.eight_a_nu_url || '">8a.nu</a>'
else null
end as "8a.nu"
,case
when w.thecrag_url is not null then '<a href="' || w.thecrag_url || '">theCrag</a>'
else null
end as "theCrag"
,case
when w.crags27_url is not null then '<a href="' || w.crags27_url || '">27crags</a>'
else null
end as "27crags"
from
crags c
left join (
select
cl.crag_id
,count(*) as cnt_climbs
from
climbs cl
where
cl.deleted_on is null
group by
cl.crag_id
) cc
on cc.crag_id = c.crag_id
left join (
select
cm.crag_id
,max(case when cm.value ilike '%thecrag.com%' then cm.value end) as thecrag_url
,max(
case
when cm.value ilike '%27crags.com%'
or cm.value ilike '%thetopo.com%'
then cm.value
end
) as crags27_url
from
crag_meta cm
where
cm.crag_meta_key_id = 1
group by
cm.crag_id
) w
on w.crag_id = c.crag_id
where
c.deleted_on is null
and c.group_crag_id is null
and c.latitude is null
and c.longitude is null
order by
coalesce(cc.cnt_climbs, 0) desc
,c.crag_name
After
select
'<a href="' || c.url || '">' || c.crag_name || '</a>' as Crag
,coalesce(cc.cnt_climbs, 0) as Climbs
,country.country as Country
,case
when c.ukc_url is not null then '<a href="' || c.ukc_url || '">UKC</a>'
else null
end as UKC
,case
when c.eight_a_nu_url is not null then '<a href="' || c.eight_a_nu_url || '">8a.nu</a>'
else null
end as "8a.nu"
,case
when w.thecrag_url is not null then '<a href="' || w.thecrag_url || '">theCrag</a>'
else null
end as "theCrag"
,case
when w.crags27_url is not null then '<a href="' || w.crags27_url || '">27crags</a>'
else null
end as "27crags"
from
crags c
left join (
select
cl.crag_id
,count(*) as cnt_climbs
from
climbs cl
where
cl.deleted_on is null
group by
cl.crag_id
) cc
on cc.crag_id = c.crag_id
left join (
select
cm.crag_id
,max(co.name) as country
from
crag_meta cm
inner join crag_meta_keys cmk
on cm.crag_meta_key_id = cmk.crag_meta_key_id
inner join countries co
on cm.value = co.country_id::varchar
where
cmk.key = 'Country'
group by
cm.crag_id
) country
on country.crag_id = c.crag_id
left join (
select
cm.crag_id
,max(case when cm.value ilike '%thecrag.com%' then cm.value end) as thecrag_url
,max(
case
when cm.value ilike '%27crags.com%'
or cm.value ilike '%thetopo.com%'
then cm.value
end
) as crags27_url
from
crag_meta cm
where
cm.crag_meta_key_id = 1
group by
cm.crag_id
) w
on w.crag_id = c.crag_id
where
c.deleted_on is null
and c.group_crag_id is null
and c.latitude is null
and c.longitude is null
order by
coalesce(cc.cnt_climbs, 0) desc
,c.crag_name
Diff
--- before
|
|||||||
| 1520 | 16th May 2026 | 13:46:09 UTC | ben_sandi | crag | Entrechaux | longitude | |
|
Before
None
After
5.142661
|
|||||||