123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <h1>Statistik sortiert nach Klassen</h1>
- <h3>Durchschnittsnoten FHR, d.h. nur Absolventen werden berücksichtigt</h3>
- Legende: Schulnummer, Anzahl der Schule von abgehender Schule, Schnitt, davon gültige Einträge
- <br>
- <button on:click="getSchueler('A')">A-Klassen</button>
- <button on:click="getSchueler('B')">B-Klassen</button>
- <button on:click="getSchueler('C')">C-Klassen</button>
- <button on:click="getSchueler('D')">D-Klassen</button>
- <button on:click="getSchueler('E')">E-Klassen</button>
- <button on:click="getSchueler('F')">F-Klassen</button>
- <button on:click="getSchueler('G')">G-Klassen</button>
- <button on:click="getSchueler('H')">H-Klassen</button>
- {#each Object.entries(schulen) as [schule, values]}
- <br>{schule}: {values.length} -> Durchschnittsnote: {dsn(values).join(': ')}
- {/each}
- <script>
- const {Schueler} = require('schild/models/Models')
- const { Model } = require('objection')
- const Knex = require('knex')
- const _ = require('lodash')
- export default {
- setup(Component) {Component.bez = 'Statistik'},
- oncreate () {
- const { knex } = this.get()
- Model.knex(Knex({
- client: 'mysql',
- useNullAsDefault: true,
- connection: {
- host: knex.host,
- database: knex.name,
- user: knex.user,
- password: knex.password,
- charset: 'utf8'
- }
- }))
- },
- helpers: {
- dsn (arr) {
- let ln = arr.length
- const r = arr.reduce((total, value) => {
- const float = parseFloat(value.DurchschnittsnoteFHR.replace(',', '.'))
- if (float) return total + float
- else ln += -1
- return total
- }, 0)
- return [(r / ln).toFixed(1), ln, arr.length]
- },
- },
- methods: {
- async getSchueler (pattern) {
- const schueler = await Schueler.query()
- .where('Klasse', 'like', pattern + '%')
- .havingNotNull('DurchschnittsnoteFHR')
-
- this.set({schulen: _.groupBy(schueler, 'LSSchulNr')})
- // console.log(schueler)
- }
- },
- data () {
- return {
- schuelerx: [],
- schulen: {}
- }
- }
- }
- </script>
|