| Country | Contributions | Between | Climbers | Crags | Summits | Climbs | Ascents | |
|---|---|---|---|---|---|---|---|---|
| 1 | United Kingdom | 50223 | 14th November 2023 – 17th August 2026 | 1387 | 674 | 0 | 2990 | 4724 |
| 2 | USA | 24171 | 14th November 2023 – 16th August 2026 | 785 | 179 | 2 | 840 | 2324 |
| 3 | France | 11785 | 14th November 2023 – 16th August 2026 | 258 | 125 | 1 | 542 | 1004 |
| 4 | Switzerland | 8789 | 14th November 2023 – 16th August 2026 | 74 | 41 | 1 | 297 | 1042 |
| 5 | Spain | 8244 | 15th November 2023 – 13th August 2026 | 88 | 73 | 0 | 441 | 885 |
| 6 | Italy | 4266 | 16th November 2023 – 10th August 2026 | 114 | 56 | 0 | 176 | 330 |
| 7 | South Africa | 3460 | 16th November 2023 – 15th August 2026 | 12 | 35 | 0 | 122 | 379 |
| 8 | Germany | 3053 | 16th November 2023 – 16th August 2026 | 115 | 47 | 0 | 102 | 221 |
| 9 | Canada | 3006 | 16th November 2023 – 13th August 2026 | 62 | 21 | 3 | 105 | 256 |
| 10 | Japan | 2386 | 16th November 2023 – 11th June 2026 | 74 | 11 | 0 | 96 | 227 |
| Date | Time | User | Type | Name | Attribute | ||
|---|---|---|---|---|---|---|---|
| 38781 | 29th January 2026 | 13:12:16 UTC | remus | climb | Wizard Ridge | ukc_url | |
|
Before
None
After
https://www.ukclimbing.com/logbook/crags/burbage_south_quarries-1310/wizzard_ridge-148964
|
|||||||
| 38782 | 29th January 2026 | 13:12:16 UTC | remus | climb | Wizard Ridge | climb_type | |
|
Before
None
After
3
|
|||||||
| 38783 | 29th January 2026 | 13:07:36 UTC | remus | list | The Grit List V2 | list_definition | |
|
Before
select
'<a href="/climb/' || c.climb_id::varchar || '/' || replace(lower(c.climb_name), ' ', '-') || '">' || c.climb_name || '</a>' as "Name"
,case
when c.grade_approx then g.grade || ' (approx)'
else
g.grade
end as "Grade"
,case
when g2.grade is not null then '~' || g2.grade || ' ' || lower(ct.climb_type)
else
null
end as "Alternative Grade"
,case
when cm1.value is not null then '✓'
else
null
end as Project
,case
when pretty_dt(a.ascent_dt_start, a.ascent_dt_end) is not null then
'<a href="/climber/' || cl.climber_id::varchar || '/' || replace(lower(cl.climber_name), ' ', '-') || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end)
else
'<a href="/climber/' || cl.climber_id::varchar || '/' || replace(lower(cl.climber_name), ' ', '-') || '">' || cl.climber_name || '</a>'
end as "FA"
,c.notes_pretty as Notes
from
climbs c
inner join crags cr
on c.ukc_crag_id = cr.crag_id
and c.deleted_on is null
inner join grades g
on c.grade_id = g.grade_id
left join climb_meta cm1
on c.climb_id = cm1.climb_id
and cm1.climb_meta_key_id = 20 -- project
left join climb_meta cm2
on cm2.climb_id = c.climb_id
and cm2.climb_meta_key_id = 9
left join grades g2
on g2.grade_id = cm2.value::int
left join climb_types ct
on g2.climb_type_id = ct.climb_type_id
left join ascents a
on c.climb_id = a.climb_id
and a.deleted_on is null
and a.fa = true
left join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
where
cr.rock_type_id = 6 -- grit
and c.climb_type_id = 3 -- trad
and g.order_on >= 60
order by
case when cm1.climb_id is not null then 1 else 0 end desc -- project
,g.order_on desc
,g2.order_on desc
After
select
'<a href="/climb/' || c.climb_id::varchar || '/' || replace(lower(c.climb_name), ' ', '-') || '">' || c.climb_name || '</a>' as "Name"
,case
when c.grade_approx then g.grade || ' (approx)'
else
g.grade
end as "Grade"
,case
when g2.grade is not null then '~' || g2.grade || ' ' || lower(ct.climb_type)
else
null
end as "Alternative Grade"
,case
when cm1.value is not null then '✓'
else
null
end as Project
,case
when pretty_dt(a.ascent_dt_start, a.ascent_dt_end) is not null then
'<a href="/climber/' || cl.climber_id::varchar || '/' || replace(lower(cl.climber_name), ' ', '-') || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end)
else
'<a href="/climber/' || cl.climber_id::varchar || '/' || replace(lower(cl.climber_name), ' ', '-') || '">' || cl.climber_name || '</a>'
end as "FA"
,c.notes_pretty as Notes
from
climbs c
inner join crags cr
on c.ukc_crag_id = cr.crag_id
and c.deleted_on is null
inner join grades g
on c.grade_id = g.grade_id
left join climb_meta cm1
on c.climb_id = cm1.climb_id
and cm1.climb_meta_key_id = 20 -- project
left join climb_meta cm2
on cm2.climb_id = c.climb_id
and cm2.climb_meta_key_id = 9
left join grades g2
on g2.grade_id = cm2.value::int
left join climb_types ct
on g2.climb_type_id = ct.climb_type_id
left join ascents a
on c.climb_id = a.climb_id
and a.deleted_on is null
and a.fa = true
left join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
where
cr.rock_type_id = 6 -- grit
and c.climb_type_id = 3 -- trad
and g.order_on >= 60
order by
case when cm1.climb_id is not null then 1 else 0 end desc -- project
,g.order_on desc
,g2.order_on
Diff
--- before
|
|||||||
| 38784 | 29th January 2026 | 13:06:39 UTC | remus | list | The Grit List V2 | list_definition | |
|
Before
select
'<a href="/climb/' || c.climb_id::varchar || '/' || replace(lower(c.climb_name), ' ', '-') || '">' || c.climb_name || '</a>' as "Name"
,case
when c.grade_approx then g.grade || ' (approx)'
else
g.grade
end as "Grade"
,case
when g2.grade is not null then '~' || g2.grade || ' ' || lower(ct.climb_type)
else
null
end as "Alternative Grade"
,case
when cm1.value is not null then '✓'
else
null
end as Project
,case
when pretty_dt(a.ascent_dt_start, a.ascent_dt_end) is not null then
'<a href="/climber/' || cl.climber_id::varchar || '/' || replace(lower(cl.climber_name), ' ', '-') || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end)
else
'<a href="/climber/' || cl.climber_id::varchar || '/' || replace(lower(cl.climber_name), ' ', '-') || '">' || cl.climber_name || '</a>'
end as "FA"
,c.notes_pretty as Notes
from
climbs c
inner join crags cr
on c.ukc_crag_id = cr.crag_id
and c.deleted_on is null
inner join grades g
on c.grade_id = g.grade_id
left join climb_meta cm1
on c.climb_id = cm1.climb_id
and cm1.climb_meta_key_id = 20 -- project
left join climb_meta cm2
on cm2.climb_id = c.climb_id
and cm2.climb_meta_key_id = 9
left join grades g2
on g2.grade_id = cm2.value::int
left join climb_types ct
on g2.climb_type_id = ct.climb_type_id
left join ascents a
on c.climb_id = a.climb_id
and a.deleted_on is null
and a.fa = true
left join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
where
cr.rock_type_id = 6 -- grit
and c.climb_type_id = 3 -- trad
and g.order_on >= 60
order by
case when cm1.climb_id is not null then 1 else 0 end desc -- project
,g.order_on desc
After
select
'<a href="/climb/' || c.climb_id::varchar || '/' || replace(lower(c.climb_name), ' ', '-') || '">' || c.climb_name || '</a>' as "Name"
,case
when c.grade_approx then g.grade || ' (approx)'
else
g.grade
end as "Grade"
,case
when g2.grade is not null then '~' || g2.grade || ' ' || lower(ct.climb_type)
else
null
end as "Alternative Grade"
,case
when cm1.value is not null then '✓'
else
null
end as Project
,case
when pretty_dt(a.ascent_dt_start, a.ascent_dt_end) is not null then
'<a href="/climber/' || cl.climber_id::varchar || '/' || replace(lower(cl.climber_name), ' ', '-') || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end)
else
'<a href="/climber/' || cl.climber_id::varchar || '/' || replace(lower(cl.climber_name), ' ', '-') || '">' || cl.climber_name || '</a>'
end as "FA"
,c.notes_pretty as Notes
from
climbs c
inner join crags cr
on c.ukc_crag_id = cr.crag_id
and c.deleted_on is null
inner join grades g
on c.grade_id = g.grade_id
left join climb_meta cm1
on c.climb_id = cm1.climb_id
and cm1.climb_meta_key_id = 20 -- project
left join climb_meta cm2
on cm2.climb_id = c.climb_id
and cm2.climb_meta_key_id = 9
left join grades g2
on g2.grade_id = cm2.value::int
left join climb_types ct
on g2.climb_type_id = ct.climb_type_id
left join ascents a
on c.climb_id = a.climb_id
and a.deleted_on is null
and a.fa = true
left join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
where
cr.rock_type_id = 6 -- grit
and c.climb_type_id = 3 -- trad
and g.order_on >= 60
order by
case when cm1.climb_id is not null then 1 else 0 end desc -- project
,g.order_on desc
,g2.order_on desc
Diff
--- before
|
|||||||
| 38785 | 29th January 2026 | 13:04:14 UTC | remus | climb | Meshuga | notes_pretty | |
|
Before
<p>The prow at Black Rocks is one of the most impressive and uncompromising features on gritstone and for decades was regarded as a Last Great Problem. Attention in the late ‘80s and early ‘90s focused on the prow’s left arête, with climbing said to be around 8b. </p>
<p>Whilst top-roping <a href="/climber/547/seb-grieve">Seb Grieve</a> on the line, <a href="/climber/475/quentin-fisher">Quentin Fisher</a> suggested trying to link to a line of better holds on the right arête. With a bit of beta refinement from <a href="/climber/2812/dave-jones">Dave Jones</a>, the line of Meshuga was unlocked and Seb made his ascent in 1997. It was perhaps the boldest route on gritstone at the time, comprising unpredictable 7c climbing, a long way above a terrible landing. [1]</p>
<p>Despite its boldness, it has become one of the most repeated E9s.</p>
<p>The left arête remains unclimbed. </p>
<p>The name comes from the Yiddish word for Insane.</p>
<h3>References</h3>
<p>[1] ‘Peak Rock’, Vertebrate Publishing, 2013. </p>
After
<p>The prow at Black Rocks is one of the most impressive and uncompromising features on gritstone and for decades was regarded as a Last Great Problem. Attention in the late ‘80s and early ‘90s focused on the prow’s left arête, with climbing said to be around 8b.</p>
<p>Whilst top-roping <a href="/climber/547/seb-grieve" rel="noopener noreferrer">Seb Grieve</a> on the line, <a href="/climber/475/quentin-fisher" rel="noopener noreferrer">Quentin Fisher</a> suggested trying to link to a line of better holds on the right arête. With a bit of beta refinement from <a href="/climber/2812/dave-jones" rel="noopener noreferrer">Dave Jones</a>, the line of Meshuga was unlocked and Seb made his ascent in 1997. It was perhaps the boldest route on gritstone at the time, comprising unpredictable 7c climbing, a long way above a terrible landing. The name comes from the Yiddish word for Insane. [1]</p>
<p>Despite its boldness, it has become one of the most repeated E9s.</p>
<p>The left arête remains unclimbed.</p>
<blockquote>
<p>Not much gear until all the hard climbing is completed (though initial pocket may take a F1.5). Instead, protection would appear to take the form of several futon mattresses and a wandering clutch of Frenchmen lashed down to prevent them from running off. The landing is possibly the worst on gritstone although Neil Gresham miraculously only got concussion when he fell off the crux slap. One other thing to think about to savour the full atmosphere is that The Promontory is a historically popular suicide spot. [2]</p>
</blockquote>
<h3>References</h3>
<p>[1] ‘Peak Rock’, Vertebrate Publishing, 2013. </p>
<p>[2] <a href="https://www.geocities.ws/readza1/climbing/gritlist/grit_e9.html" rel="noopener noreferrer">https://www.geocities.ws/readza1/climbing/gritlist/grit_e9.html</a></p>
|
|||||||
| 38786 | 29th January 2026 | 13:04:14 UTC | remus | climb | Meshuga | notes | |
|
Before
The prow at Black Rocks is one of the most impressive and uncompromising features on gritstone and for decades was regarded as a Last Great Problem. Attention in the late ‘80s and early ‘90s focused on the prow’s left arête, with climbing said to be around 8b.
Whilst top-roping [Seb Grieve](/climber/547/seb-grieve) on the line, [Quentin Fisher](/climber/475/quentin-fisher) suggested trying to link to a line of better holds on the right arête. With a bit of beta refinement from [Dave Jones](/climber/2812/dave-jones), the line of Meshuga was unlocked and Seb made his ascent in 1997. It was perhaps the boldest route on gritstone at the time, comprising unpredictable 7c climbing, a long way above a terrible landing. [1]
Despite its boldness, it has become one of the most repeated E9s.
The left arête remains unclimbed.
The name comes from the Yiddish word for Insane.
### References
[1] ‘Peak Rock’, Vertebrate Publishing, 2013.
After
The prow at Black Rocks is one of the most impressive and uncompromising features on gritstone and for decades was regarded as a Last Great Problem. Attention in the late ‘80s and early ‘90s focused on the prow’s left arête, with climbing said to be around 8b.
Whilst top-roping [Seb Grieve](/climber/547/seb-grieve) on the line, [Quentin Fisher](/climber/475/quentin-fisher) suggested trying to link to a line of better holds on the right arête. With a bit of beta refinement from [Dave Jones](/climber/2812/dave-jones), the line of Meshuga was unlocked and Seb made his ascent in 1997. It was perhaps the boldest route on gritstone at the time, comprising unpredictable 7c climbing, a long way above a terrible landing. The name comes from the Yiddish word for Insane. [1]
Despite its boldness, it has become one of the most repeated E9s.
The left arête remains unclimbed.
> Not much gear until all the hard climbing is completed (though initial pocket may take a F1.5). Instead, protection would appear to take the form of several futon mattresses and a wandering clutch of Frenchmen lashed down to prevent them from running off. The landing is possibly the worst on gritstone although Neil Gresham miraculously only got concussion when he fell off the crux slap. One other thing to think about to savour the full atmosphere is that The Promontory is a historically popular suicide spot. [2]
### References
[1] ‘Peak Rock’, Vertebrate Publishing, 2013.
[2] [https://www.geocities.ws/readza1/climbing/gritlist/grit_e9.html](https://www.geocities.ws/readza1/climbing/gritlist/grit_e9.html)
Diff
--- before
|
|||||||
| 38787 | 29th January 2026 | 13:01:52 UTC | remus | climb | Born Slippy | notes_pretty | |
|
Before
<p>Generally considered to be a little too close <a href="/climb/644/knockin'-on-heaven's-door" rel="noopener noreferrer">Knockin' on Heaven's Door</a> to be considered an independent line but recorded here for posterity.</p>
<p>The intent was to climb <a href="/climb/644/knockin'-on-heaven's-door" rel="noopener noreferrer">Knockin' on Heaven's Door</a> without the peg, instead doing a little traverse and placing a small cam.</p>
After
<p>Generally considered to be a little too close <a href="/climb/644/knockin'-on-heaven's-door" rel="noopener noreferrer">Knockin' on Heaven's Door</a> to be an independent line but recorded here for posterity.</p>
<p>The intent was to climb <a href="/climb/644/knockin'-on-heaven's-door" rel="noopener noreferrer">Knockin' on Heaven's Door</a> without the peg, instead doing a little traverse and placing a small cam.</p>
|
|||||||
| 38788 | 29th January 2026 | 13:01:52 UTC | remus | climb | Born Slippy | notes | |
|
Before
Generally considered to be a little too close [Knockin' on Heaven's Door](/climb/644/knockin'-on-heaven's-door) to be considered an independent line but recorded here for posterity.
The intent was to climb [Knockin' on Heaven's Door](/climb/644/knockin'-on-heaven's-door) without the peg, instead doing a little traverse and placing a small cam.
After
Generally considered to be a little too close [Knockin' on Heaven's Door](/climb/644/knockin'-on-heaven's-door) to be an independent line but recorded here for posterity.
The intent was to climb [Knockin' on Heaven's Door](/climb/644/knockin'-on-heaven's-door) without the peg, instead doing a little traverse and placing a small cam.
Diff
--- before
|
|||||||
| 38789 | 29th January 2026 | 13:00:04 UTC | remus | climb | Samson | Alternate Grade | |
|
Before
None
After
62
|
|||||||
| 38790 | 29th January 2026 | 12:59:07 UTC | remus | climb | Knockin' on Heaven's Door | Alternate Grade | |
|
Before
None
After
9
|
|||||||
| 38791 | 29th January 2026 | 12:58:49 UTC | remus | climb | Born Slippy | grade | |
|
Before
E9
After
E8
|
|||||||
| 38792 | 29th January 2026 | 12:58:49 UTC | remus | climb | Born Slippy | grade_id | |
|
Before
62
After
61
|
|||||||
| 38793 | 29th January 2026 | 12:58:41 UTC | remus | climb | Born Slippy | Alternate Grade | |
|
Before
None
After
9
|
|||||||
| 38794 | 29th January 2026 | 12:58:36 UTC | remus | climb | Born Slippy | notes_pretty | |
|
Before
<p>Generally considered to be a little too close <a href="/climb/644/knockin'-on-heaven's-door" rel="noopener noreferrer">Knockin' on Heaven's Door</a> to be considered an independent line but recorded here for posterity.</p>
After
<p>Generally considered to be a little too close <a href="/climb/644/knockin'-on-heaven's-door" rel="noopener noreferrer">Knockin' on Heaven's Door</a> to be considered an independent line but recorded here for posterity.</p>
<p>The intent was to climb <a href="/climb/644/knockin'-on-heaven's-door" rel="noopener noreferrer">Knockin' on Heaven's Door</a> without the peg, instead doing a little traverse and placing a small cam.</p>
|
|||||||
| 38795 | 29th January 2026 | 12:58:36 UTC | remus | climb | Born Slippy | notes | |
|
Before
Generally considered to be a little too close [Knockin' on Heaven's Door](/climb/644/knockin'-on-heaven's-door) to be considered an independent line but recorded here for posterity.
After
Generally considered to be a little too close [Knockin' on Heaven's Door](/climb/644/knockin'-on-heaven's-door) to be considered an independent line but recorded here for posterity.
The intent was to climb [Knockin' on Heaven's Door](/climb/644/knockin'-on-heaven's-door) without the peg, instead doing a little traverse and placing a small cam.
Diff
--- before
|
|||||||
| 38796 | 29th January 2026 | 12:53:53 UTC | remus | climb | Born Slippy | notes_pretty | |
|
Before
<p>Generally considered to be a little too close <a href="/climb/644/knockin'-on-heaven's-door">Knockin' on Heaven's Door</a> to be considered an independent line.</p>
After
<p>Generally considered to be a little too close <a href="/climb/644/knockin'-on-heaven's-door" rel="noopener noreferrer">Knockin' on Heaven's Door</a> to be considered an independent line but recorded here for posterity.</p>
|
|||||||
| 38797 | 29th January 2026 | 12:53:53 UTC | remus | climb | Born Slippy | notes | |
|
Before
Generally considered to be a little too close [Knockin' on Heaven's Door](/climb/644/knockin'-on-heaven's-door) to be considered an independent line.
After
Generally considered to be a little too close [Knockin' on Heaven's Door](/climb/644/knockin'-on-heaven's-door) to be considered an independent line but recorded here for posterity.
Diff
--- before
|
|||||||
| 38798 | 29th January 2026 | 12:52:47 UTC | remus | list | The Grit List V2 | list_definition | |
|
Before
select
'<a href="/climb/' || c.climb_id::varchar || '/' || replace(lower(c.climb_name), ' ', '-') || '">' || c.climb_name || '</a>' as "Name"
,case
when c.grade_approx then g.grade || ' (approx)'
else
g.grade
end as "Grade"
,case
when g2.grade is not null then '~' || g2.grade || ' ' || lower(ct.climb_type)
else
null
end as "Alternative Grade"
,case
when cm1.value is not null then '✓'
else
null
end as Project
,c.notes_pretty as Notes
from
climbs c
inner join crags cr
on c.ukc_crag_id = cr.crag_id
and c.deleted_on is null
inner join grades g
on c.grade_id = g.grade_id
left join climb_meta cm1
on c.climb_id = cm1.climb_id
and cm1.climb_meta_key_id = 20 -- project
left join climb_meta cm2
on cm2.climb_id = c.climb_id
and cm2.climb_meta_key_id = 9
left join grades g2
on g2.grade_id = cm2.value::int
left join climb_types ct
on g2.climb_type_id = ct.climb_type_id
where
cr.rock_type_id = 6 -- grit
and c.climb_type_id = 3 -- trad
and g.order_on >= 60
order by
case when cm1.climb_id is not null then 1 else 0 end desc -- project
,g.order_on desc
After
select
'<a href="/climb/' || c.climb_id::varchar || '/' || replace(lower(c.climb_name), ' ', '-') || '">' || c.climb_name || '</a>' as "Name"
,case
when c.grade_approx then g.grade || ' (approx)'
else
g.grade
end as "Grade"
,case
when g2.grade is not null then '~' || g2.grade || ' ' || lower(ct.climb_type)
else
null
end as "Alternative Grade"
,case
when cm1.value is not null then '✓'
else
null
end as Project
,case
when pretty_dt(a.ascent_dt_start, a.ascent_dt_end) is not null then
'<a href="/climber/' || cl.climber_id::varchar || '/' || replace(lower(cl.climber_name), ' ', '-') || '">' || cl.climber_name || '</a>, ' || pretty_dt(a.ascent_dt_start, a.ascent_dt_end)
else
'<a href="/climber/' || cl.climber_id::varchar || '/' || replace(lower(cl.climber_name), ' ', '-') || '">' || cl.climber_name || '</a>'
end as "FA"
,c.notes_pretty as Notes
from
climbs c
inner join crags cr
on c.ukc_crag_id = cr.crag_id
and c.deleted_on is null
inner join grades g
on c.grade_id = g.grade_id
left join climb_meta cm1
on c.climb_id = cm1.climb_id
and cm1.climb_meta_key_id = 20 -- project
left join climb_meta cm2
on cm2.climb_id = c.climb_id
and cm2.climb_meta_key_id = 9
left join grades g2
on g2.grade_id = cm2.value::int
left join climb_types ct
on g2.climb_type_id = ct.climb_type_id
left join ascents a
on c.climb_id = a.climb_id
and a.deleted_on is null
and a.fa = true
left join climbers cl
on a.climber_id = cl.climber_id
and cl.deleted_on is null
where
cr.rock_type_id = 6 -- grit
and c.climb_type_id = 3 -- trad
and g.order_on >= 60
order by
case when cm1.climb_id is not null then 1 else 0 end desc -- project
,g.order_on desc
Diff
--- before
|
|||||||
| 38799 | 29th January 2026 | 12:47:59 UTC | remus | list | The Grit List V2 | list_definition | |
|
Before
select
'<a href="/climb/' || c.climb_id::varchar || '/' || replace(lower(c.climb_name), ' ', '-') || '">' || c.climb_name || '</a>' as "Name"
,case
when c.grade_approx then g.grade || ' (approx)'
else
g.grade
end as "Grade"
,case
when g2.grade is not null then '~' || g2.grade || ' ' || lower(ct.climb_type)
else
null
end as "Alternative Grade"
,c.notes_pretty as Notes
from
climbs c
inner join crags cr
on c.ukc_crag_id = cr.crag_id
and c.deleted_on is null
inner join grades g
on c.grade_id = g.grade_id
left join climb_meta cm1
on c.climb_id = cm1.climb_id
and cm1.climb_meta_key_id = 20 -- project
left join climb_meta cm2
on cm2.climb_id = c.climb_id
and cm2.climb_meta_key_id = 9
left join grades g2
on g2.grade_id = cm2.value::int
left join climb_types ct
on g2.climb_type_id = ct.climb_type_id
where
cr.rock_type_id = 6 -- grit
and c.climb_type_id = 3 -- trad
and g.order_on >= 60
order by
case when cm1.climb_id is not null then 1 else 0 end desc -- project
,g.order_on desc
After
select
'<a href="/climb/' || c.climb_id::varchar || '/' || replace(lower(c.climb_name), ' ', '-') || '">' || c.climb_name || '</a>' as "Name"
,case
when c.grade_approx then g.grade || ' (approx)'
else
g.grade
end as "Grade"
,case
when g2.grade is not null then '~' || g2.grade || ' ' || lower(ct.climb_type)
else
null
end as "Alternative Grade"
,case
when cm1.value is not null then '✓'
else
null
end as Project
,c.notes_pretty as Notes
from
climbs c
inner join crags cr
on c.ukc_crag_id = cr.crag_id
and c.deleted_on is null
inner join grades g
on c.grade_id = g.grade_id
left join climb_meta cm1
on c.climb_id = cm1.climb_id
and cm1.climb_meta_key_id = 20 -- project
left join climb_meta cm2
on cm2.climb_id = c.climb_id
and cm2.climb_meta_key_id = 9
left join grades g2
on g2.grade_id = cm2.value::int
left join climb_types ct
on g2.climb_type_id = ct.climb_type_id
where
cr.rock_type_id = 6 -- grit
and c.climb_type_id = 3 -- trad
and g.order_on >= 60
order by
case when cm1.climb_id is not null then 1 else 0 end desc -- project
,g.order_on desc
Diff
--- before
|
|||||||
| 38800 | 29th January 2026 | 12:46:16 UTC | remus | list | The Grit List V2 | list_type_name | |
|
Before
None
After
Trad Climbing
|
|||||||