diff --git a/aleksis/apps/alsijil/model_extensions.py b/aleksis/apps/alsijil/model_extensions.py
index a4ab382d662d199885aa122e67cb2ec948d34472..0828272f1986f519f5d6b7d748a465b275ed6846 100644
--- a/aleksis/apps/alsijil/model_extensions.py
+++ b/aleksis/apps/alsijil/model_extensions.py
@@ -281,7 +281,7 @@ def get_owner_groups_with_lessons(self: Person):
 
     Groups which have child groups with related lessons are also included.
     """
-    return Group.get_groups_with_lessons().filter(owners=self)
+    return Group.get_groups_with_lessons().filter(owners=self).distinct()
 
 
 @Group.method
@@ -299,6 +299,10 @@ def generate_person_list_with_class_register_statistics(
             filter=Q(
                 personal_notes__absent=True,
                 personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
+            )
+            & (
+                Q(personal_notes__lesson_period__lesson__groups=self)
+                | Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
             ),
         ),
         excused=Count(
@@ -308,6 +312,10 @@ def generate_person_list_with_class_register_statistics(
                 personal_notes__excused=True,
                 personal_notes__excuse_type__isnull=True,
                 personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
+            )
+            & (
+                Q(personal_notes__lesson_period__lesson__groups=self)
+                | Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
             ),
         ),
         unexcused=Count(
@@ -316,14 +324,28 @@ def generate_person_list_with_class_register_statistics(
                 personal_notes__absent=True,
                 personal_notes__excused=False,
                 personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
+            )
+            & (
+                Q(personal_notes__lesson_period__lesson__groups=self)
+                | Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
+            ),
+        ),
+        tardiness=Sum(
+            "personal_notes__late",
+            filter=(
+                Q(personal_notes__lesson_period__lesson__groups=self)
+                | Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
             ),
         ),
-        tardiness=Sum("personal_notes__late"),
         tardiness_count=Count(
             "personal_notes",
             filter=~Q(personal_notes__late=0)
             & Q(
                 personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
+            )
+            & (
+                Q(personal_notes__lesson_period__lesson__groups=self)
+                | Q(personal_notes__lesson_period__lesson__groups__parent_groups=self)
             ),
         ),
     )
@@ -336,6 +358,12 @@ def generate_person_list_with_class_register_statistics(
                     filter=Q(
                         personal_notes__extra_marks=extra_mark,
                         personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
+                    )
+                    & (
+                        Q(personal_notes__lesson_period__lesson__groups=self)
+                        | Q(
+                            personal_notes__lesson_period__lesson__groups__parent_groups=self
+                        )
                     ),
                 )
             }
@@ -350,6 +378,12 @@ def generate_person_list_with_class_register_statistics(
                         personal_notes__absent=True,
                         personal_notes__excuse_type=excuse_type,
                         personal_notes__lesson_period__lesson__validity__school_term=self.school_term,
+                    )
+                    & (
+                        Q(personal_notes__lesson_period__lesson__groups=self)
+                        | Q(
+                            personal_notes__lesson_period__lesson__groups__parent_groups=self
+                        )
                     ),
                 )
             }