diff --git a/project/dalia/curation/suggest/proficiency_levels.py b/project/dalia/curation/suggest/proficiency_levels.py
index ac1a7822691f9f339147c4d19d8284a96883a3fc..064632a79b5adf566158360e9329abeb18a357ed 100644
--- a/project/dalia/curation/suggest/proficiency_levels.py
+++ b/project/dalia/curation/suggest/proficiency_levels.py
@@ -4,7 +4,7 @@ from rdflib import RDF, RDFS, Variable
 
 from project.dalia.api_models.api_models import LabelValueItem
 from project.dalia.query.utils import query_ontologies_dataset
-from project.dalia.query_builder.query_builder import Aggregates, FunctionExpressions, PropertyPaths, QueryBuilder
+from project.dalia.query_builder.query_builder import QueryBuilder
 from project.dalia.rdf.namespace import MoDalia
 
 
@@ -23,22 +23,16 @@ _VARIABLES = {
 
 def prepare_query_to_get_proficiency_levels() -> str:
     var_level = _VARIABLES["level"]
+    var_level_order = Variable("levelOrder")
 
     return QueryBuilder().SELECT(
         *_VARIABLES.values()
     ).WHERE(
-        QueryBuilder().SELECT(
-            var_level,
-            count=Aggregates.COUNT(var_level),
-        ).WHERE(
-            (var_level, RDF.type, MoDalia.Proficiency),
-            (var_level, PropertyPaths.ZeroOrMorePath(MoDalia.isLessProficientThan), Variable("moreProficientLevel")),
-        ).GROUP_BY(
-            var_level
-        ).ORDER_BY(
-            FunctionExpressions.DESC(Variable("count"))
-        ).build(),
+        (var_level, RDF.type, MoDalia.Proficiency),
+        (var_level, MoDalia.hasOrder, var_level_order),
         (var_level, RDFS.label, _VARIABLES["label"]),
+    ).ORDER_BY(
+        var_level_order
     ).build()
 
 
diff --git a/project/dalia/rdf/namespace/MoDalia.py b/project/dalia/rdf/namespace/MoDalia.py
index 0144fc9f30f28262788fd31529f1206c83d4bd3b..dc44f1873f452ed22ce432ebd53eedc6d2f9787f 100644
--- a/project/dalia/rdf/namespace/MoDalia.py
+++ b/project/dalia/rdf/namespace/MoDalia.py
@@ -9,7 +9,7 @@ NS = "https://purl.org/ontology/modalia#"
 hasLearningType = URIRef(NS + "hasLearningType")
 hasMediaType = URIRef(NS + "hasMediaType")
 hasTargetGroup = URIRef(NS + "hasTargetGroup")
-isLessProficientThan = URIRef(NS + "isLessProficientThan")
+hasOrder = URIRef(NS + "hasOrder")
 requiresProficiencyLevel = URIRef(NS + "requiresProficiencyLevel")
 
 # Types
diff --git a/tests/project/dalia/curation/suggest/test_proficiency_levels.py b/tests/project/dalia/curation/suggest/test_proficiency_levels.py
index c9ace5fd809999df45f27292b040bf68ac4feb0e..a61130e7616f61dcc9e988d581458e4968832e17 100644
--- a/tests/project/dalia/curation/suggest/test_proficiency_levels.py
+++ b/tests/project/dalia/curation/suggest/test_proficiency_levels.py
@@ -13,17 +13,11 @@ def test_prepare_query_to_get_proficiency_levels():
     assert normalize(query) == dedent_and_normalize("""
         SELECT ?level ?label  
         WHERE { 
-        {
-        SELECT ?level (COUNT( ?level ) as ?count)  
-        WHERE { 
         ?level <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://purl.org/ontology/modalia#Proficiency> . 
-        ?level <https://purl.org/ontology/modalia#isLessProficientThan>* ?moreProficientLevel . 
-        } 
-        GROUP BY ?level 
-        ORDER BY DESC ( ?count ) 
-        } 
+        ?level <https://purl.org/ontology/modalia#hasOrder> ?levelOrder . 
         ?level <http://www.w3.org/2000/01/rdf-schema#label> ?label . 
         } 
+        ORDER BY ?levelOrder 
     """)