У меня есть таблица данных с результатами опроса, и я хочу сделать определенные расчеты на этих данных. Структура данных выглядит примерно так: (не обращайте внимания на одинаковые данные, я вырезал и вставил все строки)
____________________________________________________________________________________
| group |individual | key | key | key |
| | |subkey|subkey|subkey|subkey|subkey|subkey|subkey|subkey|subkey|
| | |q|q|q |q |q |q|q|q |q|q|q |q |q |q|q|q |q|q|q |q |q |q|q|q |
|-------|-----------|-|-|--|--|---|-|-|--|-|-|--|--|---|-|-|--|-|-|--|--|---|-|-|--|
| 1 | 0001 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |
| 1 | 0002 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |
| 1 | 0003 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |
| 2 | 0004 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |
| 2 | 0005 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |
| 3 | 0006 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |
| 4 | 0007 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |1|7|5 |1 |3 |1|4|1 |
------------------------------------------------------------------------------------
Итак, каждый человек принадлежит к группе и ответил на несколько вопросов. Эти вопросы всегда сгруппированы по ключам и подразделам.
Существует ли какой-либо простой метод для расчета средних значений, отклонений и тому подобного на основе группировок.
Что-то вроде
public float getAverage(int key, int individual);
float avg = getAverage(5,7);
Я думаю, что я спрашиваю, что было бы лучшим способом структурировать данные в C #, чтобы с ним было как можно проще работать?
Я начал делать уроки для каждой сущности, но где-то запутался, и что-то перестало работать. Поэтому, прежде чем я продолжил идти по этому пути, мне было интересно, есть ли другие, лучшие способы сделать это?
(Каждый человек также может иметь описывающие переменные, например, возрастную группу и тому подобное, но это не важно для базовой функциональности.)
Наше текущее решение делает все вычисления встроенными в запросы при запросе данных из базы данных. Это работает, но это медленно, и количество запросов равняется вопросам * индивидуумам + ключам * индивидуумам, которых может быть много, если отдельные запросы.
Есть предложения?