KoBoSync handles it slightly differently,
We wanted to keep a "1 record per survey" structure in the database, so the repeating groups are given incrementally named columns.
To give you an example, let's say you are interviewing households, and you want a repeating group to ask the same set of questions of each member in the household, like Gender, Age, and Name.
So you have a Group named "Household". And you have three questions whose nodes are called gender, age, name.
When you collect the data, the repeating groups are captured and recorded in the Instance like this:
You may have a bunch of these instances, one for each household you interview, with data for each member of each household. When you aggregate this data using KoBoSync, it will create a CSV where it adds columns for each repeating group. It tags the names of those columns with the name of the group, the name of the node, and the number of the repeat (starting with 1).
So, if your repeating group is called Household, and you are asking each member for gender, age and name, and there are three household members, KoBoSync will create a CSV whose columns look like this:
That makes it easier to analyze from the perspective of the household because all the household members are in the same horizontal record and you don't have to refer to an external table.
I hope that helps, let me know if I can further clarify anything,
How does KoboSync hadfle repeating groups when generating the .csv file? In ODK briefcase a separate file is created with linking foreign keys. Is there a similar process with kobosync?