diff --git a/src/main/java/org/hbp/mip/model/Dataset.java b/src/main/java/org/hbp/mip/model/Dataset.java
index 2fb7f6f8ca368b41866105f3a69073db7ed693d3..de3fde2589defe803e32f08974f314d335ce8289 100644
--- a/src/main/java/org/hbp/mip/model/Dataset.java
+++ b/src/main/java/org/hbp/mip/model/Dataset.java
@@ -25,6 +25,10 @@ public class Dataset {
     @CollectionTable(name = "dataset_header", joinColumns = @JoinColumn(name = "dataset_code"))
     private List<String> header = new LinkedList<>();
 
+    @ElementCollection(fetch = FetchType.EAGER)
+    @CollectionTable(name = "dataset_grouping", joinColumns = @JoinColumn(name = "dataset_code"))
+    private List<String> grouping = new LinkedList<>();
+
     @ElementCollection(fetch=FetchType.EAGER)
     @CollectionTable(name = "dataset_data", joinColumns = @JoinColumn(name = "dataset_code"))
     private Map<String, LinkedList<Object>> data = new HashMap<>();
@@ -61,6 +65,15 @@ public class Dataset {
     }
 
 
+    public List<String> getGrouping() {
+        return grouping;
+    }
+
+    public void setGrouping(List<String> grouping) {
+        this.grouping = grouping;
+    }
+
+
     public Map<String, LinkedList<Object>> getData() {
         return data;
     }
diff --git a/src/main/java/org/hbp/mip/utils/CSVUtil.java b/src/main/java/org/hbp/mip/utils/CSVUtil.java
index a1e5d9e80797e515bad8cc869a57b6339eaf72bf..2812325c080b1168372a6377434461bdfe559215 100644
--- a/src/main/java/org/hbp/mip/utils/CSVUtil.java
+++ b/src/main/java/org/hbp/mip/utils/CSVUtil.java
@@ -29,14 +29,19 @@ public class CSVUtil {
         String code = GenerateDSCode(query);
         Date date = new Date();
         List<String> header = new LinkedList<>();
+        List<String> grouping = new LinkedList<>();
         Map<String, LinkedList<Object>> data = new HashMap<>();
 
-        List<Variable> variables = new LinkedList<>();
-        //variables.addAll(query.getVariables());  // TODO : check that
-        variables.addAll(query.getCovariables());
-        //variables.addAll(query.getGrouping());  // TODO : check that
+        List<Variable> covs = new LinkedList<>();
+        List<Variable> grps = new LinkedList<>();
+        List<Variable> all = new LinkedList<>();
+        covs.addAll(query.getCovariables());
+        grps.addAll(query.getGrouping());
+        all.addAll(query.getCovariables());
+        all.addAll(query.getGrouping());
 
-        header.addAll(variables.stream().map(Variable::getCode).collect(Collectors.toList()));
+        header.addAll(covs.stream().map(Variable::getCode).collect(Collectors.toList()));
+        grouping.addAll(grps.stream().map(Variable::getCode).collect(Collectors.toList()));
 
         try {
             InputStream is = Dataset.class.getClassLoader().getResourceAsStream(filename);
@@ -47,7 +52,7 @@ public class CSVUtil {
             isr.close();
             is.close();
 
-            for (Variable v : variables) {
+            for (Variable v : all) {
                 String type = getTypeFromDB(v);
                 String c = v.getCode();
                 int idx = find(c, firstRow);
@@ -135,6 +140,7 @@ public class CSVUtil {
         result.setCode(code);
         result.setDate(date);
         result.setHeader(header);
+        result.setGrouping(grouping);
         result.setData(data);
 
         return result;
diff --git a/src/test/db b/src/test/db
index 368949009f0dd1895eac947aa86822e5fb0f39f2..862cdf17ea38cc4abf934450447045e37e5f89a9 160000
--- a/src/test/db
+++ b/src/test/db
@@ -1 +1 @@
-Subproject commit 368949009f0dd1895eac947aa86822e5fb0f39f2
+Subproject commit 862cdf17ea38cc4abf934450447045e37e5f89a9