Discussion:
Zwiradsuenden 2017 bis 2021
(zu alt für eine Antwort)
Martin Τrautmann
2021-12-30 07:58:17 UTC
Permalink
Opendata-Portale sind praktisch, gibts sowas eigentlich auch punkto
Bussen/Ordnungswidrigsdingsbums von Deutschen Kommunen?
Hier mal aus der Ordnungsbussenstatistik Basel-Stadt, 2017 bis September
2021 (neueres ist noch nicht online).
Selektiert ausschliesslich auf Zweiräder, ich hoffe die Textformatierung
ist nicht völlig kaputt.
Spalten: Anzahl Bussen, Gesetzesartikel plus Zusatz sowie Volltext.
1780 605.1 Benützen des Trottoirs ohne abzusteigen
1602 611.18 Nichtbeachten des Vorschriftssignals 'Fussgängerzone'
1500 611.1 Nichtbeachten des Vorschriftssignals 'Allgemeines Fahrverbot
in beiden Richtungen'
1211 615.1 A Nichtbeachten eines Lichtsignals
548 615.1 Nichtbeachten eines Lichtsignals
Was bedeutet A, AA, B?
Christian @Soemtron
2021-12-30 09:07:00 UTC
Permalink
1780 605.1 Benützen des Trottoirs ohne abzusteigen
149 612.1 Benützen eines Fussweges ohne abzusteigen
Toll, wie genau da differenziert wird. :-/
214 703.2 A Fahren ohne fest angebrachte Rückstrahler
66 703.2 Fahren ohne fest angebrachte Rückstrahler
Und da erst.
489 600.1 Loslassen der Lenkvorrichtung
191 617.2 Unterlassen des Handzeichens oder der Richtungsanzeige beim Linksabbiegen
...
Regeln gestaltet man am besten so, daß man zwangsläufig dagegen verstößt;
das hilft, die Untertanen in Schach zu halten.
9 611.17 Nichtbeachten des Vorschriftssignals 'Begegnungszone'
Klingt nach einem sympathischen Signal. Aber kommen Begegnungen so selten
vor bei euch?
1 ...
...
Man redet zwar von deutscher Gründlichkeit, aber die schweizer steht dem
offenbar nicht nach.

Ist "Benützen" tatsächlich ein korrektes Wort in .ch?

cu,
Christian

PGP Key available.
Patrick Rudin
2021-12-30 13:28:57 UTC
Permalink
7 621.2 Nichtbenützen des Radstreifens
3 621.1 Nichtbenützen des Radweges
Die hier scheinen mir wiederum verblüffend wenig - ist man da
großzügig beim Wegsehen?
Auch. Wobei wir in Basel selber fast keine "Radwege" haben in dem Sinne,
wie das in Deutschland in Städten üblich ist.
1 914.0 Verrichten der Notdurft auf Strassen, Plätzen oder Promenaden
Und hier frage ich mich, wieso das unter "Zweiräder" eingeordnet
ist. Aber möglicherweise will ich das auch gar nicht wissen.
Kann falsch erfasst sein. Oder einer, der in der Innenstadt mit dem Velo
zur Barfüsserkirche fuhr und sich dann dort erleichterte. Und dann "halt
die Fresse!" sagte, als der Polizist ihn ansprach. Mit einem "hm, ja,
tschuldigung, musste dringend" bleibt es normalerweise kostenlos.

Übrigens seh ich grad, E-Roller, E-Bikes und Motorfahrräder sind _nicht_
in diesem Datensatz drin.

Gruss

Patrick
Ulf Kutzner
2022-01-27 19:57:55 UTC
Permalink
Post by Patrick Rudin
1 914.0 Verrichten der Notdurft auf Strassen, Plätzen oder Promenaden
Und hier frage ich mich, wieso das unter "Zweiräder" eingeordnet
ist. Aber möglicherweise will ich das auch gar nicht wissen.
Kann falsch erfasst sein. Oder einer, der in der Innenstadt mit dem Velo
zur Barfüsserkirche fuhr und sich dann dort erleichterte. Und dann "halt
die Fresse!" sagte, als der Polizist ihn ansprach.
Hat die Polizei bei Euch bei solch Reaktion nichts deutlich
Garstigeres in der Schublade? Beleidigung wg. Duzens?
Ungebühr? Aufmupf?

Gruß, ULF
Stefan+ (Stefan Froehlich)
2021-12-30 16:00:13 UTC
Permalink
1780 605.1 Benützen des Trottoirs ohne abzusteigen
149 612.1 Benützen eines Fussweges ohne abzusteigen
Was ist denn der Unterschied zwischen diesen beiden?
Trottoir (aka "Gehsteig") sind die Bereiche links und rechts der
Fahrbahn.

Fussweg ist das Äquivalent eines Radwegs für Fußgänger, d.h.
durch das entsprechende Verkehrszeichen gekennzeichnet.

Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan!? Ja! Denn schnuppern ist glitzernder als geifern.
(Sloganizer)
Patrick Rudin
2021-12-30 19:46:33 UTC
Permalink
Post by Stefan+ (Stefan Froehlich)
Trottoir (aka "Gehsteig") sind die Bereiche links und rechts der
Fahrbahn.
Wobei ich schon beobachtet habe, wie die Polizei aus dem Fahrzeug heraus
mit dem Lautsprecher "Nid uff em Trottoir fahre!" rief. Woraufhin der
Velofahrer auf die Strasse wechselte, damit hatte es sich dann.
Kostenpflichtig wird es in der Praxis wohl erst dann, wenn man die
Aufforderung ignoriert oder im hohen Tempo die Fussgänger slalomisiert.

Von der Anzahl her ist das aber eh Kinderkram, auf die fünf Jahre
gerechnet gibt das etwa eine Busse pro Tag.

Autos und Lieferwagen kassieren in Basel jährlich rund 200'000
Ordnungsbussen. Als über 500 pro Tag. Entsprechend gross ist bei der
Autolobby das Gejammer...


Gruss

Patrick
Stefan+ (Stefan Froehlich)
2022-01-03 11:11:15 UTC
Permalink
Post by Patrick Rudin
Post by Stefan+ (Stefan Froehlich)
Trottoir (aka "Gehsteig") sind die Bereiche links und rechts der
Fahrbahn.
Wobei ich schon beobachtet habe, wie die Polizei aus dem Fahrzeug
heraus mit dem Lautsprecher "Nid uff em Trottoir fahre!" rief.
Woraufhin der Velofahrer auf die Strasse wechselte, damit hatte es
sich dann.
s/Strasse/Fahrbahn/ *g*

Unser Verwaltungsstrafgesetz sieht derartiges für geringfügige
Vergehen sogar ganz explizit vor:

| § 21. (1) Die Behörde kann ohne weiteres Verfahren von der
| Verhängung einer Strafe absehen, wenn das Verschulden des
| Beschuldigten geringfügig ist und die Folgen der Übertretung
| unbedeutend sind. Sie kann den Beschuldigten jedoch gleichzeitig
| unter Hinweis auf die Rechtswidrigkeit seines Verhaltens mit
| Bescheid ermahnen, sofern dies erforderlich ist, um den
| Beschuldigten von weiteren strafbaren Handlungen gleicher Art
| abzuhalten.
|
| (2) Unter den im Abs. 1 angeführten Voraussetzungen können die
| Organe der öffentlichen Aufsicht von der Verhängung einer
| Organstrafverfügung oder von der Erstattung einer Anzeige absehen;
| sie können den Täter in solchen Fällen in geeigneter Weise auf die
| Rechtswidrigkeit seines Verhaltens aufmerksam machen.

Das bietet natürlich viel Ermessensspielraum, dementsprechend ist im
Anlassfall anzuraten, sich einsichtig und zerknirscht zu zeigen.
Post by Patrick Rudin
Kostenpflichtig wird es in der Praxis wohl erst dann, wenn man die
Aufforderung ignoriert oder im hohen Tempo die Fussgänger
slalomisiert.
...oder (in Wien in den letzten paar Jahren) bei Planquadraten, die
explizit auf Verstöße von Radfahrern ausgerichtet waren.

Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Die beste Anlage für ihr Wirtschaftsgeld - Stefan: naschen, welch warmes Sehnen!
(Sloganizer)
Patrick Rudin
2022-01-03 16:12:28 UTC
Permalink
Post by Stefan+ (Stefan Froehlich)
s/Strasse/Fahrbahn/ *g*
Das heisst hier ganz einfach "Schdrooss".
Post by Stefan+ (Stefan Froehlich)
Unser Verwaltungsstrafgesetz sieht derartiges für geringfügige
Sicher? Wir haben ähnliche Regelungen für Kleinkrams, aber das bezieht
sich eigentlich nicht auf Ordnungsbussen.

Theoretisch hat der Polizist in der Schweiz bei sowas kein Ermessen. In
der Praxis ist das natürlich anders. Das sieht man schon daran, dass in
den letzten fünf Jahren hier ganze neun Bussen an Fussgänger wegen
"Nichtbenützen des Fussgängerstreifens" ausgestellt worden sind.

Das ist ja der Witz am Datensatz, man sieht, was die Polizei tatsächlich
tut und wo sie Schwerpunkte setzt. Ein Vergleich mit
Städten wie Berlin oder Wien wäre durchaus interessant.
Post by Stefan+ (Stefan Froehlich)
...oder (in Wien in den letzten paar Jahren) bei Planquadraten, die
explizit auf Verstöße von Radfahrern ausgerichtet waren.
In der Basler Innenstadt sollte man auch tunlichst darauf achten, wo man
fahren darf und wo nicht.
https://www.mobilitaet.bs.ch/dam/jcr:af095a80-0540-4282-af9f-470559d77352/Verkehrskonzept_April_2017.pdf

In der Zone würde ich allerdings nie wohnen wollen. Anlieferlärm morgens
um fünf Uhr, danke auch...


Gruss

Patrick
Stefan
2022-01-03 18:30:21 UTC
Permalink
Post by Patrick Rudin
Post by Stefan+ (Stefan Froehlich)
Unser Verwaltungsstrafgesetz sieht derartiges für geringfügige
Sicher? Wir haben ähnliche Regelungen für Kleinkrams, aber das bezieht
sich eigentlich nicht auf Ordnungsbussen.
Das ist ja der Witz am Datensatz, man sieht, was die Polizei tatsächlich
tut und wo sie Schwerpunkte setzt. Ein Vergleich mit
Städten wie Berlin oder Wien wäre durchaus interessant.
es gibt je nach Judikatur mehrere Punkte:
- Opportunitätsgrundsatz (§ 47 Absatz 1 Satz 1 OWiG)
- Verwarnung ohne Verwarnungsgeld
- Einstellung (ohne Schuldzuweisung und mit Schuldzuweisung bzw.
Übernahme der Auslagen)
- Absehen von der Verfolgung
- Nichteröffnungsbeschluss
- ....

https://www.bmj.de/SharedDocs/Publikationen/DE/Ordnungswidrigkeitenrecht.pdf

Jeder der Punkte sollte gerichtlich überprüfbar sein. Was aber real
nicht er Fall ist, da die Staatsanwaltschaft und Amtsgerichte sehr sehr
auf der Seite der Polizei stehen und nicht neutral sind (wie im Gesetz
vorgesehen).

Sachen, die am Opportunitätsgrundsatz hängen bleiben, werden nicht in
der Statisik erfasst, da es kein Verfahren gibt. Und bei Sachen, wo es
Verfahren gibt, vergisst die Polizei das Verfahren schon einmal, wenn es
nicht gerade gut aussieht (für die Polzei).
[Bsp.: Anweisung ein Moped auf dem Radweg zu fahren; Anweisung auf dem
Radweg entgegen der Fahrtrichtung zu fahren; Anweisung mit dem Rad auf
einem Fußweg zu fahren, Anweisung als Fußgänger auf dem Radweg zu gehen
...]

Z.B. beim kleinen Vergehen beim Demonstrationsrecht ist der
Opportunitätsgrundsatz elementar, da die Polizei die Aufgabe der
Sicherheit hat und nicht jeden Absatz und Komma der Gesetze
durchzusetzen und sichere Veranstaltungen künstlich eskalieren zu
lassen. (z.B. bewaffnete und unangemeldete Demo von Motorradfaherern -
Motorradhelm als Schutzwaffe; "Demo" von Radfaherern in Nürnberg, wo die
Polizei keine Sachbeschädigung an den Fahrrädern begehen musste)
Patrick Rudin
2022-01-03 19:25:45 UTC
Permalink
Post by Stefan
- Opportunitätsgrundsatz (§ 47 Absatz 1 Satz 1 OWiG)
Eben. Das ist in der Schweiz anders.
Post by Stefan
https://www.bmj.de/SharedDocs/Publikationen/DE/Ordnungswidrigkeitenrecht.pdf
Interessanter Nebenpunkt: Da wird von rund 800'000 Ordnungswidrigkeiten
(2014) im Strassenverkehr in einem Jahr in Bayern gesprochen.

Im Kanton Basel-Stadt kassieren alleine Autofahrer jährlich um die
200'000 Ordnungsbussen.

37 Quadratkilometer versus 70'000 Quadratkilometer.
Oder knapp 200'000 Einwohner versus 13 Millionen Einwohner.

Man könnte daraus schliessen, dass in Bayern die Kontrolldichte bei
nahezu null liegt...


Gruss

Patrick
Patrick Rudin
2022-01-02 12:08:05 UTC
Permalink
Apropos Unterlassen des Handzeichens: Umschauen und Einordnen ist bei
Euch nicht vorgeschrieben
Umschauen ist halt wie die Spiegelbenutzung bei den Autofahrern: Wenn es
nicht in der Ordnungsbussenliste aufgeführt ist, kann es auch nicht per
Ordnungsbusse geahndet werden.
Geisterradeln wurde im Vergleich zu manch anderem Verstoß erstaunlich
selten abgestraft.
Wie gesagt, dazu gibt hier es gar nicht soviele Möglchkeiten.


Gruss

Patrick
Patrick Rudin
2022-01-07 15:44:46 UTC
Permalink
Post by Martin Τrautmann
Was bedeutet A, AA, B?
Ich habe ein wenig mit den Daten rumgespielt, und es scheint so, als
wäre das eine Kodierung dafür, ob die Busse von Verkehrsassistenten,
Autobahnpolizei, Fusspatrouillen, an grossen Schwerpunktaktionen oder
automatisiert von Blechpolizisten ausgestellt worden ist. Ich hab mal
bei der Quelle nachgefragt und hoffe, dort gelegentlich eine Antwort zu
erhalten.

Unabhängig von muss ich aber mal unter Debian eine vernünftige
Auswertesortware finden. Sqlitebrowser ist ziemlich buggy und schmiert
laufend ab, und für die Einrichtung von Mariadb fehlt mir offenbar das
Informatikstudium...


Gruss

Patrick
Anton Ertl
2022-01-07 18:16:09 UTC
Permalink
UnabhÀngig von muss ich aber mal unter Debian eine vernÌnftige
Auswertesortware finden.
Ich weiss nicht, was fuer Sortware Du im Sinn hast, aber ich bin bis
jetzt mit .csv-Files als Datenbanken und awk (und diversen
shell-tools) als Auswertesoftware durchgekommen.

- anton
--
de.rec.fahrrad FAQ: http://0x1a.de/rec/fahrrad/
Radfahrer sollten vor oder hinter fahrenden Kfz fahren und nicht daneben.
Ist der Radverkehr erst separiert, diskriminiert man ihn voellig ungeniert.
Patrick Rudin
2022-01-08 14:59:33 UTC
Permalink
Post by Anton Ertl
Ich weiss nicht, was fuer Sortware Du im Sinn hast, aber ich bin bis
jetzt mit .csv-Files als Datenbanken und awk (und diversen
shell-tools) als Auswertesoftware durchgekommen.
Für Leute, die schon vor dem Frühstück einen C-Compiler schreiben, ist
das sicher ein tolles Tool. Für mich ist das völlig unerreichbar. Und
ja, ich hab schon genug Tutorials durchprobiert. Ich verstehe dort
nichtmal die simpelsten Beispiele.

Mit SQL schreibe ich beispielsweise sowas:

select count(Laufnummer), Kategorie, Postleitzahl, sum(Bussenbetrag)
from testtabelle
where Jahr=2021
group by Kategorie, Postleitzahl
order by count(Laufnummer) desc, kategorie, Postleitzahl

Und kriege eine nach Anzahl Bussen geordnete Liste pro
Fahrzeugkategorie, pro Wohnquartier, mit der Summe der jeweils
eingenommenen Bussen des Jahres 2021.

Für dieses SQL-Statement habe ich jetzt knapp eine Minute gebraucht. Wie
lange brauchst Du als geübter Benutzer für eine entsprechende Abfrage
mit awk?


Gruss

Patrick
Karl Müller
2022-01-08 17:01:10 UTC
Permalink
Post by Patrick Rudin
Post by Anton Ertl
Ich weiss nicht, was fuer Sortware Du im Sinn hast, aber ich bin bis
jetzt mit .csv-Files als Datenbanken und awk (und diversen shell-tools)
als Auswertesoftware durchgekommen.
Für Leute, die schon vor dem Frühstück einen C-Compiler schreiben, ist
das sicher ein tolles Tool. Für mich ist das völlig unerreichbar. Und
ja, ich hab schon genug Tutorials durchprobiert. Ich verstehe dort
nichtmal die simpelsten Beispiele.
C-Compiler zu schreiben ist langweilig geworden - wer etwas auf sich hält
schreibt einen rust-compiler nach dem Frühstück bis zur 10:00-Nato-Pause
Post by Patrick Rudin
select count(Laufnummer), Kategorie, Postleitzahl, sum(Bussenbetrag)
from testtabelle where Jahr=2021 group by Kategorie, Postleitzahl order
by count(Laufnummer) desc, kategorie, Postleitzahl
Und kriege eine nach Anzahl Bussen geordnete Liste pro
Fahrzeugkategorie, pro Wohnquartier, mit der Summe der jeweils
eingenommenen Bussen des Jahres 2021.
Für dieses SQL-Statement habe ich jetzt knapp eine Minute gebraucht. Wie
lange brauchst Du als geübter Benutzer für eine entsprechende Abfrage
mit awk?
Wenn Du dich mit sql auskennst und sqlite Dir zu instabil ist dann
versuche mal postgres - da kann die Datenbank auch mal etwas größer
werden [1]

www.postgresql.org

mfg

Karl

[1] Maximale Datenbankgröße. Unbegrenzt.
Maximale Tabellengröße. 32 Terabytes.
Maximale Zeilengröße. 400 Gigabytes.
Maximale Feldgröße. 1 Gigabyte
Patrick Rudin
2022-01-08 18:19:40 UTC
Permalink
Post by Karl Müller
Wenn Du dich mit sql auskennst und sqlite Dir zu instabil ist dann
versuche mal postgres - da kann die Datenbank auch mal etwas größer
werden [1]
Die Doku scheint deutlich besser zu sein als der Krempel von Mariadb,
danke, muss ich mal in Ruhe ausprobieren. Das Einrichten eines Users
scheint indes auch hier nicht ganz trivial zu sein...


Gruss

Patrick
Christian Barthel
2022-01-08 21:37:22 UTC
Permalink
Post by Patrick Rudin
Post by Karl Müller
Wenn Du dich mit sql auskennst und sqlite Dir zu instabil ist dann
versuche mal postgres - da kann die Datenbank auch mal etwas größer
werden [1]
Die Doku scheint deutlich besser zu sein als der Krempel von Mariadb,
danke, muss ich mal in Ruhe ausprobieren. Das Einrichten eines Users
scheint indes auch hier nicht ganz trivial zu sein...
Gibt es für Deutschland auch so ein schönes CSV?

Habs mir mal kurz angeschaut. Vielleicht helfen dir ein paar
Schritte hier weiter inkl. User und DB anlegen:

(Testsystem: Debian 11, PostgreSQL 13)

--8<---------------cut here---------------start------------->8---
$ sudo su postgres
***@x280 $ createuser -W bussen
Password:
***@x280 $ createdb -O bussen bussen

$ psql --no-psqlrc -q -h 127.0.0.1 -U bussen -W bussen
Password:

bussen=> create table bussen (
Laufnummer varchar,
Kategorie varchar,
Nwochentag varchar,
Wochentagnummer varchar,
Wochentag varchar,
Monat varchar,
Jahr varchar,
Tempolimit varchar,
Postleitzahl varchar,
Ort varchar,
Betrag varchar,
Bussenziffer varchar,
Zusatz varchar,
Text varchar);

bussen=> \copy bussen (Laufnummer,Kategorie,Nwochentag,Wochentagnummer,Wochentag,Monat,Jahr,Tempolimit,Postleitzahl,Ort,Betrag,Bussenziffer,Zusatz,Text) from 'bussen.csv' delimiter ';' CSV HEADER;
--8<---------------cut here---------------end--------------->8---

Das von dir genannte Statement konnte ich problemlos ausführen,
musste aber Typcasts hinzufügen da ich oben alles nur als varchar
festgelegt habe:

--8<---------------cut here---------------start------------->8---
bussen=> select count(Laufnummer), Kategorie, Postleitzahl, sum(Betrag::integer)
from bussen
where Jahr='2021'
group by Kategorie, Postleitzahl
order by count(Laufnummer) desc, kategorie, Postleitzahl;

count | kategorie | postleitzahl | sum
-------+------------------------------+--------------+---------
30648 | Personenwagen | 4058 | 1573920
18941 | Personenwagen | 4052 | 1132410
16908 | Personenwagen | 4057 | 1164850
14316 | Personenwagen | 4051 | 880680
11380 | Personenwagen | 4053 | 593050
10964 | Personenwagen | 4056 | 582480
8937 | Personenwagen | 4054 | 488560
7820 | Personenwagen | 4055 | 415510
...
...
...
--8<---------------cut here---------------end--------------->8---

Laufzeit:

Planning Time: 0.123 ms
Execution Time: 503.106 ms
--
Christian Barthel
Patrick Rudin
2022-01-09 15:19:43 UTC
Permalink
Post by Christian Barthel
Gibt es für Deutschland auch so ein schönes CSV?
Unter "Open Governmend Data" findet sich vieles, aber selbst in der
Schweiz publiziert bislang nur der Kanton Basel-Stadt diese
Ordnungsbussenstatistik.
Post by Christian Barthel
Habs mir mal kurz angeschaut. Vielleicht helfen dir ein paar
Vielen Dank!

Generell: Du legst da mit Root einen User an, in dessen Namen Du dann
offenbar per Anmeldung jeweils die Abfragen tätigst. Kann man diese
Abstraktionsebene irgendwie vermeiden?
Post by Christian Barthel
bussen=> create table bussen (
Laufnummer varchar,
Kategorie varchar,
Nwochentag varchar,
Wochentagnummer varchar,
Wochentag varchar,
Monat varchar,
Jahr varchar,
Tempolimit varchar,
Postleitzahl varchar,
Ort varchar,
Betrag varchar,
Bussenziffer varchar,
Zusatz varchar,
Text varchar);
bussen=> \copy bussen (Laufnummer,Kategorie,Nwochentag,Wochentagnummer,Wochentag,Monat,Jahr,Tempolimit,Postleitzahl,Ort,Betrag,Bussenziffer,Zusatz,Text) from 'bussen.csv' delimiter ';' CSV HEADER;
Verstehe ich das richtig, dass Du die table quasi manuell erstellst, und
nachher vom csv-File nur die Daten einliest? Geht das auch
"automatisch", so dass er die erste Zeile als Spaltennamen direkt übernimmt?
Post by Christian Barthel
Planning Time: 0.123 ms
Execution Time: 503.106 ms
Das ist schnell, mein Sqlitebrowser braucht dafür fast zwei Sekunden :)

Ich habe noch gesehen, kexi wäre allenfalls ein Kandidat für ein
taugliches Auswerteprogramm mit GUI. Eigentlich wollte ich diesen Winter
ja mal die Neuerungen von Blender 3.0 und darktable 3.8 genauer anschauen...


Grüsse

Patrick
Christian Barthel
2022-01-11 17:11:11 UTC
Permalink
Post by Patrick Rudin
Generell: Du legst da mit Root einen User an, in dessen Namen
Du dann offenbar per Anmeldung jeweils die Abfragen
tätigst. Kann man diese Abstraktionsebene irgendwie vermeiden?
Du kannst einen User erstellen, der deinem Loginnamen entspricht,
diesem eine Datenbank als Eigentümer eintragen und dich dann über
den lokalen Unix Domain Socket ohne Passwort anmelden:

postgres$ createuser USER
postgres$ createdb -O USER
postgres$ createdb -O USER USER

Login dann einfach als:

USER$ psql

Oder man macht alles als Superuser ‘postgres’ - aber das finde
ich nicht so empfehlenswert.
Post by Patrick Rudin
Verstehe ich das richtig, dass Du die table quasi manuell
erstellst, und nachher vom csv-File nur die Daten einliest?
Geht das auch "automatisch", so dass er die erste Zeile als
Spaltennamen direkt übernimmt?
Ich hab auf die schnelle nicht gesehen, dass das geht. Du
könntest dir aber vielleicht ein kleines Skript erstellen und den
pgloader nutzen:

https://pgloader.readthedocs.io/en/latest/ref/csv.html
--
Christian Barthel
Patrick Rudin
2022-01-12 13:03:09 UTC
Permalink
Post by Christian Barthel
postgres$ createuser USER
Das ergibt sowohl als root abgesetzt wie auch als Benutzer ein
createuser: Fehler: konnte nicht mit Datenbank template1 verbinden:
FATAL: Rolle »root« existiert nicht

Aber wie gesagt, ich komme wohl nicht umhin, mir da mal im Detail erst
die Grundlagen anzulesen. Die Rechteverwaltung der DB ist mir
schlichtweg ein Rätsel.

[CSV-Luxusimport]
Post by Christian Barthel
Ich hab auf die schnelle nicht gesehen, dass das geht. Du
könntest dir aber vielleicht ein kleines Skript erstellen und den
https://pgloader.readthedocs.io/en/latest/ref/csv.html
Ah, danke, das klingt interessant...


Gruss

Patrick
Stefan+ (Stefan Froehlich)
2022-01-12 13:46:49 UTC
Permalink
Post by Patrick Rudin
Post by Christian Barthel
postgres$ createuser USER
Das ergibt sowohl als root abgesetzt wie auch als Benutzer ein
createuser: Fehler: konnte nicht mit Datenbank template1
verbinden: FATAL: Rolle »root« existiert nicht
Das Missverständnis begann schon ein paar Postings früher mit:

| Generell: Du legst da mit Root einen User an [...]

Eine frisch gebackene Postgres-Installation hat (wenigstens unter
Debian) genau einen Benutzer mit dem Namen "postgres", und der ist
wiederum von diesem Account aus aufrufbar.

Deshalb auch der Wechsel von root -> postgres, und erst mit dessen
Prompt das Anlegen der neuen Rolle.
Post by Patrick Rudin
Aber wie gesagt, ich komme wohl nicht umhin, mir da mal im Detail
erst die Grundlagen anzulesen. Die Rechteverwaltung der DB ist mir
schlichtweg ein Rätsel.
Die kann man nahezu beliebig komplex gestalten; da Du praktisch
nichts davon benötigst, versuche (in diesem Bereich) wirklich bei
den Grundlagen zu bleiben. Du brauchst und willst genau einen
Benutzer, mit dem Du dann arbeiten kannst - damit ergibt sich im
weiteren bezüglich Berechtigungen eigentlich alles von alleine.

Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan wird mehr als Happy machen!
(Sloganizer)
Karl Müller
2022-01-09 08:14:05 UTC
Permalink
Post by Patrick Rudin
Post by Karl Müller
Wenn Du dich mit sql auskennst und sqlite Dir zu instabil ist dann
versuche mal postgres - da kann die Datenbank auch mal etwas größer
werden [1]
Die Doku scheint deutlich besser zu sein als der Krempel von Mariadb,
danke, muss ich mal in Ruhe ausprobieren. Das Einrichten eines Users
scheint indes auch hier nicht ganz trivial zu sein...
Das mit der IT das ist so wie mit dem Radfahren:

an den Bergen bekommst Du die Kondition

Also quäl Dich durch die steile Lernkurve und freue Dich hinterher wenn
alles funktioniert

Ansonsten hätte ich noch Oracle im Angebot: die kommen notfalls mit einem
Team vorbei, richten Dir alles wunderbar ein und Du kannst sogar ein
Seminar in Austin,Texas mitbuchen

Allerdings wirst Du dann so ein oder zwei Fahrräder aus Deiner Sammlung
verkaufen müssen (es sei denn Du bist Erbe oder gut verheiratet)

mfg

Karl
Wolfram Jahn
2022-01-09 14:28:07 UTC
Permalink
Post by Karl Müller
Ansonsten hätte ich noch Oracle im Angebot: die kommen notfalls mit einem
Team vorbei, richten Dir alles wunderbar ein und Du kannst sogar ein
Seminar in Austin,Texas mitbuchen
Allerdings wirst Du dann so ein oder zwei Fahrräder aus Deiner Sammlung
verkaufen müssen (es sei denn Du bist Erbe oder gut verheiratet)
Als ich das letzte Mal nachgelesen habe, gad es eine Gratis Oracle
Instanz zum Ausprobieren.

Die zwar eingeschränkt, aber nur in ziemlich exotischen Bereichen.

Du musst nur Deine Seele als Sicherheit hinterlegen, dass Du die nur
Nicht-Produktiv nutzt.
--
w
Karl Müller
2022-01-09 16:02:57 UTC
Permalink
Post by Wolfram Jahn
Post by Karl Müller
Ansonsten hätte ich noch Oracle im Angebot: die kommen notfalls mit
einem Team vorbei, richten Dir alles wunderbar ein und Du kannst sogar
ein Seminar in Austin,Texas mitbuchen
Allerdings wirst Du dann so ein oder zwei Fahrräder aus Deiner Sammlung
verkaufen müssen (es sei denn Du bist Erbe oder gut verheiratet)
Als ich das letzte Mal nachgelesen habe, gad es eine Gratis Oracle
Instanz zum Ausprobieren.
Die gibt es immer noch - einfach mal googlen
Post by Wolfram Jahn
Die zwar eingeschränkt, aber nur in ziemlich exotischen Bereichen.
Du musst nur Deine Seele als Sicherheit hinterlegen, dass Du die nur
Nicht-Produktiv nutzt.
Also in einem solchen Fall bist Du mit postgres deutlich besser bedient -
das ist richtig Opensource:

"PostgreSQL is released under the PostgreSQL License, a liberal Open
Source license, similar to the BSD or MIT licenses"

"The PostgreSQL Global Development Group remains committed to making
PostgreSQL available as free and open source software in perpetuity.
There are no plans to change the PostgreSQL License or release PostgreSQL
under a different license"

Und wer will bekommt auch professionelle Unterstützung gegen Bezahlung

Aber jetzt ist wohl genug mit IT im Fahrrad-Forum :-)

mfg

Karl
Marcus Jodorf
2022-01-11 01:54:34 UTC
Permalink
Post by Patrick Rudin
Die Doku scheint deutlich besser zu sein als der Krempel von Mariadb,
danke, muss ich mal in Ruhe ausprobieren. Das Einrichten eines Users
scheint indes auch hier nicht ganz trivial zu sein...
Bitte?

Du machst einfach das, was man Debian immer machen sollte: Du gehst zu
/usr/share/doc/<paketname> und da findet sich dann i.d.R. ein
README.Debian.gz.
Befindet sich z.B. im Verzeichnis postgresql-common und ist in diversen
anderen parallelen postgresql-<xyz> Verzeichnissen verlinkt, so daß man
es kaum übersehen kann.


Zitat:

,----
| First steps for the impatient
| -----------------------------
| Eventually you will not get around reading at least some parts of the manual,
| but if you want to get straight into playing SQL, here are the steps to create
| a database user and a database for the Unix user 'joe':
|
| 1. Install a database server with the major version of your choice
| ('postgresql-XY', e. g. 'postgresql-11'). Preferably the latest
| version, which you can get by installing the metapackage
| 'postgresql'. This will automatically create a default cluster
| 'main' with the database superuser 'postgres'.
|
| 2. Get a shell for the database superuser 'postgres'. If your system
| has an active root user, use su:
|
| # su -s /bin/bash postgres
|
| If your system uses sudo to get administrative rights, use sudo instead:
|
| joe$ sudo -u postgres bash
|
| 3. In this postgres shell, create a database user with the same name as your
| Unix login:
|
| $ createuser -DRS joe
|
| For details about the options, see createuser(1).
|
| 4. Create a database "joework" which is owned by "joe":
|
| $ createdb -O joe joework
|
| For details about the options, see createdb(1).
|
| 5. Exit the postgres shell.
|
| 6. As user joe, you should now be able to connect to your database with
|
| $ psql joework
`----

Das würde ich dann doch als weitestgehend trivial bezeichnen wollen.


Gruß,

Marcus
⚂⚃
Patrick Rudin
2022-01-12 12:59:39 UTC
Permalink
Post by Marcus Jodorf
Du machst einfach das, was man Debian immer machen sollte: Du gehst zu
/usr/share/doc/<paketname> und da findet sich dann i.d.R. ein
README.Debian.gz.
Schon, nur hilft es leider nicht weiter.
Post by Marcus Jodorf
| 2. Get a shell for the database superuser 'postgres'. If your system
|
| # su -s /bin/bash postgres
Und genau das funktioniert hier nicht, er akzeptiert dabei weder mein
Root-Paswort noch mein Benutzer-Passwort.

Ich hab aber das grundsätzliche Konzept mit diesen zusätzlichen
Database-Usern (eine Art Bruder des Root??) eh noch nicht kapiert, werde
dann am nächsten Wochenende mal ausführlich die Doku wälzen.


Gruss

Patrick
Marcus Jodorf
2022-01-12 17:55:50 UTC
Permalink
Post by Patrick Rudin
Post by Marcus Jodorf
Du machst einfach das, was man Debian immer machen sollte: Du gehst
zu /usr/share/doc/<paketname> und da findet sich dann i.d.R. ein
README.Debian.gz.
Schon, nur hilft es leider nicht weiter.
Post by Marcus Jodorf
| 2. Get a shell for the database superuser 'postgres'. If your
|
| # su -s /bin/bash postgres
Und genau das funktioniert hier nicht, er akzeptiert dabei weder mein
Root-Paswort noch mein Benutzer-Passwort.
Du benötigst kein Passwort. Das hash-sign als prompt signalisiert Dir,
daß das als root auszuführen ist. Da root alles darf, darf root auch su
einfach so ausführen und sich in den User postgres verwandeln.

(Alternativ kannst Du als normaler User natürlich noch ein sudo
davorstellen und es damit als root ausführen, der sich dann durch das su
in den User postgres verwandelt -wobei Du dann natürlich für das sudo
Dein Passwort eingeben mußt. Dabei natürlich angenommen, der User darf
sudo passend ausführen.)
Post by Patrick Rudin
Ich hab aber das grundsätzliche Konzept mit diesen zusätzlichen
Database-Usern (eine Art Bruder des Root??) eh noch nicht kapiert,
werde dann am nächsten Wochenende mal ausführlich die Doku wälzen.
Im Prinzip ganz einfach. Meistens laufen Datenbanken auf dedizierten
Servern und damit haben die Datenbankuser normalerweise nichts mit lokal
evtl. vorhanden Usern zu tun.
Wenn Du allerdings hier im einfachen Fall den neuen Datenbankuser
genauso nennst wie Deinen lokalen Account, dann macht es das für Deinen
Fall etwas einfacher. Dann mußt Du nicht immer explizit angeben, mit
welchem Usernahmen Du Dich bei der Datenbank anmelden willst
(alternativ könntest Du auch Mappings von Linuxaccounts zu
Datenbankaccounts anlegen, usw.).
Aber mach es Dir einfach: Falls Dein lokaler Useraccount beispielsweise
„prudin“ ist, dann legst Du einfach einen Datenbankuser mit identischem
Namen an. Ist in dem Falle für Dich die einfachste und beste Lösung.



Gruß,

Marcus
⚂⚃
Patrick Rudin
2022-01-13 14:40:12 UTC
Permalink
Post by Marcus Jodorf
Das hash-sign als prompt signalisiert Dir,
daß das als root auszuführen ist.
Ah, jetzt, ja.

Zuerst verwandelt sich William Riker in den Captain, und dann zieht er
sich nochmals um und wird Geordi La Forge, bevor er so die Plasmaspulen
am Warpkern neu kalibrieren kann. Deanna Troi würde dabei wohl sagen:
"Ich spüre hier etwas Verwirrung".

Danke für die Hinweise, ich werde eventuelle Folgefragen zu PostgreSQL
und den Tools dann in dcouam stellen...


Grüsse

Patrick
Anton Ertl
2022-01-08 16:52:56 UTC
Permalink
Post by Patrick Rudin
select count(Laufnummer), Kategorie, Postleitzahl, sum(Bussenbetrag)
from testtabelle
where Jahr=2021
group by Kategorie, Postleitzahl
order by count(Laufnummer) desc, kategorie, Postleitzahl
Und kriege eine nach Anzahl Bussen geordnete Liste pro
Fahrzeugkategorie, pro Wohnquartier, mit der Summe der jeweils
eingenommenen Bussen des Jahres 2021.
FÃŒr dieses SQL-Statement habe ich jetzt knapp eine Minute gebraucht. Wie
lange brauchst Du als geÃŒbter Benutzer fÃŒr eine entsprechende Abfrage
mit awk?
Das waere ungefaehr (mit Fahrzeugkategorie in der ersten Spalte,
Wohnquartier in der zweiten, und Busse in der dritten):

awk -F, '{key=$1","$2; count[key]+=1; sum[key]+=$3;} \
END {for (i in count) print count[i]","key","sum[i]}' testtabelle.csv|
sort -t, -nr

Naja, war vermutlich mehr als eine Minute. Die Sache ist halt, dass
das funktioniert, was bei den Datenbanken ein problem ist, wenn man
Deine Ausfuehrungen liest.

- anton
--
de.rec.fahrrad FAQ: http://0x1a.de/rec/fahrrad/
Radfahrer sollten vor oder hinter fahrenden Kfz fahren und nicht daneben.
Ist der Radverkehr erst separiert, diskriminiert man ihn voellig ungeniert.
Patrick Rudin
2022-01-08 18:09:16 UTC
Permalink
Post by Anton Ertl
Das waere ungefaehr (mit Fahrzeugkategorie in der ersten Spalte,
awk -F, '{key=$1","$2; count[key]+=1; sum[key]+=$3;} \
END {for (i in count) print count[i]","key","sum[i]}' testtabelle.csv|
sort -t, -nr
Fahrzeugkategorie ist zweite Spalte (die erste ist die Laufnummer,
unique, eignet sich zum Zählen), Postleitzahl ist Spalte 9, Bussenbetrag
Spalte 11.

Die Datei, die ich verwende (eigentlich original so runtergeladen, aber
die Spaltenüberschriften gekürzt, vereinfacht und ent-umlautet) ist hier:
http://www.mirada.ch/bussen.csv

Die ersten drei Zeilen:
Laufnummer;Kategorie;Nwochentag;Wochentagnummer;Wochentag;Monat;Jahr;Tempolimit;Postleitzahl;Ort;Betrag;Bussenziffer;Zusatz;Text
13504;Personenwagen;5
Donnerstag;5;Donnerstag;1;2017;30.0;4058;Basel;40;303.1.a;D;Überschreiten der
signalisierten Zonen-Höchstgeschwindigkeit nach Abzug der vom ASTRA
festgelegten Geräte- und Messunsicherheit um 1 - 5 km/h
13505;Personenwagen;5
Donnerstag;5;Donnerstag;1;2017;30.0;4058;Basel;120;303.1.b;D;Überschreiten
der signalisierten Zonen-Höchstgeschwindigkeit nach Abzug der vom
ASTRA festgelegten Geräte- und Messunsicherheit um 6-10 km/h


Dein akw-Skript ist für mich nicht vollständig selbsterklärend(tm), ich
hab mal leicht die Spalten angepasst:

awk -F, '{key=$2","$9; count[key]+=1; sum[key]+=$11;} \
END {for (i in count) print count[i]","key","sum[i]}' ./bussen.csv|
sort -t, -nr

Ausgabe:

985529,,,0
16988,,,0
15963,,,0
11277,,,0
6030,,,0
5904,,,0
5808,,,0
3952,,,0
2821,,,0
1489,,,0
754,,,0
583,,,0
580,,,0
578,,,0
562,,,0
556,,,0
478,,,0
471,,,0
424,,,0
411,,,0
369,,,0
304,,,0
214,,,0
201,,,0
195,,,0
186,,,0
173,,,0
151,,,0
151,,,0
118,,,0
82,,,0
82,,,0
76,,,0
72,,,0
69,,,0
61,,,0
54,,,0
52,,,0
50,,,0
50,,,0
48,,,0
44,,,0
38,,,0
29,,,0
28,,,0
23,,,0
20,,,0
18,,,0
17,,,0
17,,,0
17,,,0
16,,,0
15,,,0
14,,,0
13,,,0
11,,,0
11,,,0
10,,,0
9,,,0
7,,,0
7,,,0
7,,,0
7,,,0
7,,,0
7,,,0
6,,,0
6,,,0
6,,,0
6,,,0
6,,,0
5,,,0
5,,,0
5,,,0
5,,,0
5,,,0
4,,,0
4,,,0
4,,,0
4,,,0
3,,,0
3,,,0
3,,,0
3,,,0
3,,,0
2,,,0
1,,,0
1,,,0
1,,,0
1,,,0
1,,,0
1,,,0
1,,,0

Meine SQL-Abfrage:
select count(Laufnummer), Kategorie, Postleitzahl, sum(Betrag)
from bussen
where Jahr=2021
group by Kategorie, Postleitzahl
order by count(Laufnummer) desc, kategorie, Postleitzahl;

Ausgabe:

30648 Personenwagen 4058 1573920
18941 Personenwagen 4052 1132410
16908 Personenwagen 4057 1164850
14316 Personenwagen 4051 880680
11380 Personenwagen 4053 593050
10964 Personenwagen 4056 582480
8937 Personenwagen 4054 488560
7820 Personenwagen 4055 415510
7518 Personenwagen 4125 412900
2030 Lieferwagen 4058 116120
1825 Lieferwagen 4052 114690
1629 Personenwagen 4059 80530
1221 Lieferwagen 4051 85710
1215 Lieferwagen 4057 81630
903 Lieferwagen 4053 52010
880 Lieferwagen 4056 47840
717 Lieferwagen 4055 42270
624 Lieferwagen 4125 35180
617 Lieferwagen 4054 35220
488 Motorrad 4051 36260
478 Fahrrad 4051 16000
394 Motorrad 4058 34690
352 Fahrrad 4052 12400
337 Motorrad 4052 29750
264 Fussgänger 4057 26510
257 Motorrad 4057 23410
218 Motorrad 4053 16100
212 Fussgänger 4058 19460
211 Fahrrad 4053 8420
210 Personenwagen -1 29100
167 Motorrad 4056 12950
142 Lastwagen 4058 5980
139 Motorrad 4125 9900
130 Motorrad 4054 9730
117 Lieferwagen 4059 6140
115 Fahrrad 4057 4400
105 Fahrrad 4056 3710
95 Lastwagen 4057 10400
93 Motorrad 4055 8950
92 Fussgänger 4056 8990
91 Fahrrad 4058 3090
90 Personenwagen 4001 6830
88 Personenwagen 4126 5310
83 E-Scooter ohne Nr 4052 1760
78 Fussgänger 4055 6450
72 Lastwagen 4052 3940
70 Fussgänger 4051 5570
66 Fussgänger 4052 5180
66 Fussgänger 4053 5810
64 Fahrrad 4054 2510
57 Taxi 4058 4220
56 Lieferwagen 4001 4680
51 Fahrrad 4001 1540
37 Fahrrad 4125 1340
37 Motorrad 4059 2710
35 Fahrrad 4055 1480
35 Taxi 4056 2150
35 Taxi 4057 2220
31 Kleinmotorrad 4051 2250
31 Kleinmotorrad 4058 2590
30 Fahrrad 4059 970
29 Kleinmotorrad 4057 2030
28 Lastwagen 4051 2680
27 Kleinmotorrad 4125 2010
25 Taxi 4053 1530
25 Wohnmobil 4052 760
24 Fussgänger 4054 2040
24 Kleinmotorrad 4053 1940
24 Sattelschlepper 4058 840
23 Taxi 4052 1650
23 Taxi 4054 1370
22 Lastwagen 4054 1570
21 Lastwagen 4053 1640
21 Leichter Motorwagen 4053 1220
17 Leichter Motorwagen 4052 760
17 Leichter Motorwagen 4058 640
17 Motorfahrrad 4051 820
17 Motorfahrrad 4058 700
16 Lastwagen 4056 1440
14 Motorfahrrad 4053 470
14 Motorrad 4001 1140
14 Taxi 4125 880
13 Kleinmotorrad 4052 1150
13 Mitfahrer 4058 780
12 Lieferwagen -1 1000
11 Leichter Motorwagen 4055 500
11 Leichter Motorwagen 4056 440
11 Leichter Motorwagen 4057 620
10 E-Bike 4051 400
10 E-Bike 4053 370
10 E-Scooter ohne Nr 4051 280
10 Lieferwagen 4126 680
10 Motorrad -1 2020
9 Leichter Motorwagen 4051 540
9 Mitfahrer 4057 540
9 Taxi 4051 460
9 Taxi 4055 570
9 Wohnmobil 4058 320
8 Kleinmotorrad 4054 670
8 Lastwagen 4055 1000
8 Lastwagen 4125 480
8 Leichtmotorfahrrad 4052 180
8 Mitfahrer 4051 480
8 Motorrad 4126 540
7 E-Scooter ohne Nr 4053 260
7 E-Scooter ohne Nr 4058 140
7 Fussgänger 4001 1000
7 Kleinmotorrad 4055 280
7 Mitfahrer 4056 420
7 Motorfahrrad 4059 160
6 Bus 4058 320
6 E-Scooter ohne Nr 4001 140
6 Kleinmotorrad 4001 480
6 Kleinmotorrad 4056 320
6 Leichtmotorfahrrad 4051 200
6 Mitfahrer 4052 360
6 Motorfahrrad 4052 160
6 Sattelschlepper 4052 260
6 Sattelschlepper 4057 620
6 Wohnmobil 4125 240
5 Arbeitsmaschine 4058 450
5 Car 4052 220
5 E-Scooter ohne Nr 4057 160
5 Fussgänger -1 300
5 Lastwagen -1 500
5 Leichter Motorwagen 4054 340
5 Leichter Motorwagen 4059 260
5 Mitfahrer -1 300
5 Wohnmobil 4057 580
4 Bus 4125 160
4 Fussgänger 4125 500
4 Kleinmotorrad 4059 380
4 Mitfahrer 4055 240
4 Motorfahrrad 4054 220
4 Motorfahrrad 4057 100
4 Sachentransportanhänger 4052 300
4 Taxi 4059 160
3 Bus 4053 120
3 Bus 4056 180
3 E-Scooter ohne Nr 4054 70
3 Gesellschaftswagen 4051 300
3 Lastwagen 4059 200
3 Leichter Motorwagen 4125 120
3 Leichtmotorfahrrad 4054 80
3 Leichtmotorfahrrad 4057 80
3 Lieferwagen + Anhänger 4125 260
3 Mitfahrer 4053 180
3 Motorfahrrad 4125 100
3 Wohnmobil 4051 120
3 Wohnmobil 4054 200
3 Wohnmobil 4056 120
2 Bus 4054 140
2 Car 4051 160
2 Dreirädriges Motorfahrzeug 4051 140
2 Dreirädriges Motorfahrzeug 4057 80
2 Dreirädriges Motorfahrzeug 4058 120
2 E-Bike 4054 120
2 E-Scooter mit Nr 4053 70
2 Kleinbus 4052 100
2 Kleinbus 4125 80
2 Kleinmotorfahrzeug 4056 80
2 Kleinmotorfahrzeug 4057 80
2 Leichtmotorfahrrad 4056 80
2 Motorfahrrad 4056 90
2 Personenwagen-Anhänger -1 400
2 Sachentransportanhänger 4125 100
2 Sattelschlepper -1 200
2 Sattelschlepper 4054 180
2 Sattelschlepper 4056 180
2 Schwerer Personenwagen 4051 370
2 Wohnmobil 4053 80
1 Anhänger 4051 40
1 Anhänger 4052 120
1 Anhänger 4058 40
1 Arbeitsmaschine 4051 100
1 Arbeitsmaschine 4056 40
1 Bus 4051 40
1 Car 4056 40
1 Car 4057 60
1 Car 4058 20
1 Dreirädriges Motorfahrzeug 4053 40
1 Dreirädriges Motorfahrzeug 4055 40
1 Dreirädriges Motorfahrzeug 4056 40
1 Dreirädriges Motorfahrzeug 4125 120
1 E-Bike 4052 60
1 E-Bike 4055 60
1 E-Bike 4056 60
1 E-Bike 4058 30
1 E-Bike 4059 30
1 E-Scooter mit Nr 4058 20
1 E-Scooter ohne Nr 4055 20
1 E-Scooter ohne Nr 4056 20
1 Gesellschaftswagen 4056 40
1 Kleinbus 4051 40
1 Kleinbus 4056 100
1 Kleinbus 4057 200
1 Kleinbus 4058 120
1 Kleinmotorfahrzeug 4051 120
1 Kleinmotorfahrzeug 4053 40
1 Landw. Motorkarren 4059 120
1 Lastwagen 4001 100
1 Leichtes Sattelmotorfahrzeug 4052 250
1 Leichtmotorfahrrad 4053 20
1 Leichtmotorfahrrad 4125 20
1 Lieferwagen + Anhänger 4058 140
1 Motoreinachser 4125 40
1 Motorfahrrad 4001 60
1 Motorkarren 4053 40
1 Motorrad + Anhänger 4055 40
1 Motorrad-Anhänger 4052 40
1 Motorrad-Dreirad 4053 40
1 Motorrad-Dreirad 4056 40
1 Motorrad-Dreirad 4125 40
1 PW + Anhänger. bis 1t 4125 40
1 Personenwagen-Anhänger 4057 200
1 Quad 4053 40
1 Quad 4058 20
1 Roller 4051 40
1 Sachentransportanhänger 4054 100
1 Sachentransportanhänger 4057 40
1 Sachentransportanhänger 4058 100
1 Sachentransportanhänger 4059 40
1 Sattel-Sachentransportanh. 4051 100
1 Sattel-Sachentransportanh. 4052 100
1 Sattelmotorfahrzeug 4053 120
1 Schwerer Motorwagen 4058 40

Gruss

Patrick
Anton Ertl
2022-01-09 16:53:38 UTC
Permalink
Post by Patrick Rudin
Post by Anton Ertl
Das waere ungefaehr (mit Fahrzeugkategorie in der ersten Spalte,
awk -F, '{key=$1","$2; count[key]+=1; sum[key]+=$3;} \
END {for (i in count) print count[i]","key","sum[i]}' testtabelle.csv|
sort -t, -nr
Fahrzeugkategorie ist zweite Spalte (die erste ist die Laufnummer,
unique, eignet sich zum ZÀhlen), Postleitzahl ist Spalte 9, Bussenbetrag
Spalte 11.
Die Datei, die ich verwende (eigentlich original so runtergeladen, aber
http://www.mirada.ch/bussen.csv
Und es ist ";"-separiert, nicht ","-separiert. Das ergibt (inkl. einem
Bugfix):

awk -F';' '{key=$2","$9; count[key]+=1; sum[key]+=$11;} \
END {for (i in count) print count[i]","i","sum[i]}' bussen.csv|
sort -t';' -nr

bzw. mit Deiner Einschraenkung des Jahres:

awk -F';' '$7=="2021" {key=$2","$9; count[key]+=1; sum[key]+=$11;} \
END {for (i in count) print count[i]","i","sum[i]}' bussen.csv|
sort -t';' -nr

Die ersten Zeilen des Ergebnisses entsprechen Deinen:

30648,Personenwagen,4058,1573920
18941,Personenwagen,4052,1132410
16908,Personenwagen,4057,1164850
14316,Personenwagen,4051,880680
11380,Personenwagen,4053,593050
10964,Personenwagen,4056,582480
8937,Personenwagen,4054,488560
7820,Personenwagen,4055,415510
7518,Personenwagen,4125,412900
2030,Lieferwagen,4058,116120
1825,Lieferwagen,4052,114690
1629,Personenwagen,4059,80530
1221,Lieferwagen,4051,85710
1215,Lieferwagen,4057,81630

Laufzeit 1.078s auf einem Core i5-6600K mit 4GHz.

- anton
--
de.rec.fahrrad FAQ: http://0x1a.de/rec/fahrrad/
Radfahrer sollten vor oder hinter fahrenden Kfz fahren und nicht daneben.
Ist der Radverkehr erst separiert, diskriminiert man ihn voellig ungeniert.
Patrick Rudin
2022-01-10 22:08:30 UTC
Permalink
Post by Anton Ertl
awk -F';' '$7=="2021" {key=$2","$9; count[key]+=1; sum[key]+=$11;} \
END {for (i in count) print count[i]","i","sum[i]}' bussen.csv|
sort -t';' -nr
Zugegeben, ein effizientes und mächtiges Tool, um mit Hausmitteln grosse
Datenbestände zu durchforsten. Bloss die Syntax...
Post by Anton Ertl
Laufzeit 1.078s auf einem Core i5-6600K mit 4GHz.
Laufzeit 0.735s auf einem Ryzen 9 5900X...


Gruss

Patrick
Stefan+ (Stefan Froehlich)
2022-01-07 20:06:13 UTC
Permalink
Post by Patrick Rudin
Unabhängig von muss ich aber mal unter Debian eine vernünftige
Auswertesortware finden.
Für welche Art von Auswertung?
Post by Patrick Rudin
[...] für die Einrichtung von Mariadb fehlt mir offenbar das
Informatikstudium...
Mit ein bisschen Zeit lässt sich das (oder eine andere
SQL-Datenbank) schon hinbekommen, aber wenn Du nicht gerade planst,
eine Auswertung über mehrere Jahresberichte hinweg zu machen, sollte
das doch auch ohne (oder ganz barbarisch in LibreOffice/Calc) gehen.

Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - Endlich: Tratschen solange es schlaucht!
(Sloganizer)
Patrick Rudin
2022-01-08 14:57:09 UTC
Permalink
Post by Stefan+ (Stefan Froehlich)
Post by Patrick Rudin
Unabhängig von muss ich aber mal unter Debian eine vernünftige
Auswertesortware finden.
Für welche Art von Auswertung?
Erstmal simples Zeug, wie halt der hiesige Datensatz, etwa nach
Postleitzahl und Jahr gruppierte Aufstellung, wieviele Littering-Bussen
verteilt wurden. Oder die Anzahl Geschwindigkeitsbussen pro Tempozone,
mit eingenommenem Gesamtbetrag, geordnet nach Postleitzahl. Mit einer
SQL-Abfrage ist sowas halt recht trivial.

Mit Sqlitebrowser importierst Du csv mit einem Klick, sagst ihm noch,
dass er die erste Zeile als Spaltennamen verwenden soll, setzt den
Separator auf ";" und wusch, schon kannst Du beliebige SQL-Befehle absetzen.

Visualisieren wäre noch schön, also so richtig übersichtliche Graphiken,
die Möglichkeiten von Sqlitebrowser sind da eher minimal.

Aber eine Abfrage wie "where bussenziffer in (303.1.a, 303.1.b, .....)"
ist wenig komfortabel zu tippen, und gerade bei längeren where-Abfragen
raucht Sqlitebrowser dann irgendwann ab. Ausserdem ist das dann viel
manuelle Arbeit, wenn man etwa eine Liste machen will, die
beispielsweise pauschal nach Temposünden und Parksünden gruppiert ist.

Dann kam auch mal die Idee auf, Programme zu testen, die (soweit ich das
verstanden habe) Datenbeziehungen quasi automatisch visuell darstellen
und so ein Entdecken von Zusammenhängen erlauben. Der passende
Wortschaft für diese Tools fehlt mir halt völlig, zumindest im
Debian-Repo bin ich auf elki und weka gestossen. Ein Wochenende lang hab
ich da mal rumgepröbelt, aber ich bin schon daran gescheitert, überhaupt
irgend einen Datensatz damit zu öffnen. R hab ich dann irgendwann mal
gefunden, aber das hat mich auch eher ratlos zurückgelassen...
Post by Stefan+ (Stefan Froehlich)
Post by Patrick Rudin
[...] für die Einrichtung von Mariadb fehlt mir offenbar das
Informatikstudium...
Mit ein bisschen Zeit lässt sich das (oder eine andere
SQL-Datenbank) schon hinbekommen, aber wenn Du nicht gerade planst,
eine Auswertung über mehrere Jahresberichte hinweg zu machen, sollte
das doch auch ohne (oder ganz barbarisch in LibreOffice/Calc) gehen.
Mir war nicht bewusst, dass Libreoffice mehr kann als eine csv-Tabelle
als Tabelle zu importieren.

Bei Mariadb bin ich nichmal sicher, welches die offizielle Doku ist.
https://mariadb.com/kb/en/authentication-plugin-unix-socket/

Den Sinn davon habe ich nicht verstanden, und ein entsprechender Eintrag
in /etc/mysql/mariadb.conf/50-server.cnf blieb wirkungslos. Dort habe
ich auch gesehen, dass der User auf "mysql" gesetzt ist, und wie ich auf
dem Rechner (also localhost) dann meinen lokalen User mit dem
mariadb-User verknüpfen kann, ist mir ein Rätsel geblieben. Ich hab dann
irgendwann aufgegeben. Eigentlich wollte ich ja bloss als Benutzer eine
Datenbank erstellen, csv importieren und dann Abfragen tätigen. Die
Datenbank-Bücher in der hiesigen Bibliothek erläutern die
Windows-Installationstools und machen dann alles als Root, um auf Seite
377 von 400 noch zu erklären, dass man das nicht machen sollte und man
auch normalen Usern Recht geben kann.

Kurzum: Das ist alles ein ziemlicher undurchschaubarer Urwald für mich...


Gruss

Patrick
Stefan+ (Stefan Froehlich)
2022-01-09 22:20:01 UTC
Permalink
Post by Patrick Rudin
Post by Stefan+ (Stefan Froehlich)
Post by Patrick Rudin
Unabhängig von muss ich aber mal unter Debian eine vernünftige
Auswertesortware finden.
Für welche Art von Auswertung?
Erstmal simples Zeug, wie halt der hiesige Datensatz, etwa nach
Postleitzahl und Jahr gruppierte Aufstellung, wieviele
Littering-Bussen verteilt wurden. Oder die Anzahl
Geschwindigkeitsbussen pro Tempozone, mit eingenommenem
Gesamtbetrag, geordnet nach Postleitzahl. Mit einer SQL-Abfrage
ist sowas halt recht trivial.
Bis auf die Summenbildung verwende ich für solche Dinge einfach die
Befehlszeile mit cut, grep und count - das geht schnell und erspart
mir das Nachdenken über sinnvolle Strukturen bei Dingen, die ich
wahrscheinlich eh nicht öfter als ein Dutzend Mal brauchen werde.
Post by Patrick Rudin
Post by Stefan+ (Stefan Froehlich)
Post by Patrick Rudin
[...] für die Einrichtung von Mariadb fehlt mir offenbar das
Informatikstudium...
Mit ein bisschen Zeit lässt sich das (oder eine andere
SQL-Datenbank) schon hinbekommen, aber wenn Du nicht gerade planst,
eine Auswertung über mehrere Jahresberichte hinweg zu machen, sollte
das doch auch ohne (oder ganz barbarisch in LibreOffice/Calc) gehen.
Mir war nicht bewusst, dass Libreoffice mehr kann als eine
csv-Tabelle als Tabelle zu importieren.
LibreOffice sollte im großen und ganzen das können, was Excel kann
(also keine Datenbank, aber doch eine ganze Menge für solche
Zwecke), selber fehlt mir aber so gut wie jede Erfahrung damit.
Post by Patrick Rudin
Bei Mariadb bin ich nichmal sicher, welches die offizielle Doku ist.
https://mariadb.com/kb/en/authentication-plugin-unix-socket/
Wie schon andere schrieben: Wenn schon, dann nimm PostgreSQL, das
ist in der Anwendung sauberer und auch nicht mehr Aufwand.
Post by Patrick Rudin
Eigentlich wollte ich ja bloss als Benutzer eine Datenbank
erstellen, csv importieren und dann Abfragen tätigen.
Lass es mich so formulieren: Wenn das Anlegen der Tabelle (anstatt
der automatischen Übernahme aus der CSV-Datei) bereits zu viel
Aufwand ist, dann lohnt sich die Datenbank für Dich noch nicht :-)

Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Stefan - welch ein aparter Gedanke.
(Sloganizer)
Patrick Rudin
2022-01-10 22:19:37 UTC
Permalink
Post by Stefan+ (Stefan Froehlich)
Post by Patrick Rudin
Eigentlich wollte ich ja bloss als Benutzer eine Datenbank
erstellen, csv importieren und dann Abfragen tätigen.
Lass es mich so formulieren: Wenn das Anlegen der Tabelle (anstatt
der automatischen Übernahme aus der CSV-Datei) bereits zu viel > Aufwand ist, dann lohnt sich die Datenbank für Dich noch nicht :-)
Ich wundere mich bloss, dass tippfaule cli-Nerds(tm) da noch keine
Abkürzung kreiert haben. Das manuelle Anlegen der Felder ist ja auch
eine Fehlerquelle.

Das hiesige Opendata-Portal bietet auch Downloads als JSON an, somit
wäre in Zukunft möglicherweise auch mit Arrays (in welcher Form auch
immer) zu rechnen. Das übersteigt dann wohl die Möglichkeiten von
Spreadsheets.

Wobei ich neulich mit einem Staatsanwalt im Outback(tm) darüber
diskutierte, ob die Datenbank der Strafbefehle tatsächlich pro Fall
immer nur _ein_ Delikt referenziert, so dass beispielsweise ein
Autofahrer, der seine Frau würgt, danach ein Auto rechts überholt und
dabei kokst, in der Statistik nur als SVG-Delikt oder vielleicht
lediglich unter häusliche Gewalt auftaucht. Mir fällt es schwer zu
glauben, dass Datenbanken im profesionellen im Jahr 2022 noch nicht über
Arrays verfügen...


Gruss

Patrick
Rolf Mantel
2022-01-11 08:06:21 UTC
Permalink
Mir fällt es schwer zu glauben, dass Datenbanken im profesionellen im
Jahr 2022 noch nicht über Arrays verfügen...
Die Definition einer *Relationalen Datenbank* ist eben, dass die Daten
relational sind; 1:N Beziehungen werden durch zusätzliche
Schlüsselfelder modelliert.
Bei einer Datei "Bussen" ist klar, dass jede Busse genau einen
Tatbestand trägt (eventuell werden für einen Tatbestand mehrere Bussen
ausgesprochen).
Bei einer Datei "Gerichtsprozesse" kann ein Prozess mehrere Tatbestände
beinhalten, das hätte dann als Schüssel "Prozess-ID, laufende Nummer'.

Eine Auswertung auf Daten, die eine "zufällige" Mischung zwischen
Einzeldaten und Arrays haben (Vergleichbar: Objektorientiert ein
"Fahrrad" bei dem Tandems ausser dem Fahrer auch einen Passagier haben),
ist extrem aufwänding und bringt kaum Mehrwert.

Rolf
Patrick Rudin
2022-01-12 13:07:20 UTC
Permalink
Post by Rolf Mantel
Die Definition einer *Relationalen Datenbank* ist eben, dass die Daten
relational sind;
Stimmt, das Wort "Array" war hier unsinnig.

Ideal wäre eine separate Table, wo nebst Fallnummer dann für alle
denkbaren Tatbestände ein Feld wäre. Wobei die Modellierung beliebig
kompliziert werden kann: Es gibt dann ein Rechtsmittelverfahren mit
möglicherweise anderslautenden Entscheiden, und das Bundesgericht kippt
das ganze dann vielleicht nochmals...


Gruss

Patrick
Marcus Jodorf
2022-01-12 18:01:56 UTC
Permalink
Post by Patrick Rudin
Post by Rolf Mantel
Die Definition einer *Relationalen Datenbank* ist eben, dass die
Daten relational sind;
Stimmt, das Wort "Array" war hier unsinnig.
Wobei anzumerken ist, daß so ziemlich alle gängigen SQL Datenbanken
natürlich auch Arrays können.

<https://www.postgresql.org/docs/13/arrays.html>

Kommt halt immer auf den Anwendungsfall an. Manchmal möchte man
eben vielleicht auch einfach nur ganz normale Arrays verwenden.
Ist vermutlich eher selten aber sie sind meist verfügbar.


Gruß,

Marcus
⚂⚃
Stefan+ (Stefan Froehlich)
2022-01-11 17:42:40 UTC
Permalink
Post by Patrick Rudin
Post by Stefan+ (Stefan Froehlich)
Post by Patrick Rudin
Eigentlich wollte ich ja bloss als Benutzer eine Datenbank
erstellen, csv importieren und dann Abfragen tätigen.
Lass es mich so formulieren: Wenn das Anlegen der Tabelle
(anstatt der automatischen Übernahme aus der CSV-Datei) bereits
zu viel > Aufwand ist, dann lohnt sich die Datenbank für Dich
noch nicht :-)
Ich wundere mich bloss, dass tippfaule cli-Nerds(tm) da noch keine
Abkürzung kreiert haben. Das manuelle Anlegen der Felder ist ja
auch eine Fehlerquelle.
Genau das meinte ich oben: Das ist einfach kein typischer Einsatz
für eine Datenbank. Die verwendet man eher, wenn man zuerst relativ
lange darüber tüftelt, wie das Schema am besten aussieht und sie
dann häufig, aber zeitarm befüllt und/oder abfrägt.
Post by Patrick Rudin
Wobei ich neulich mit einem Staatsanwalt im Outback(tm) darüber
diskutierte, ob die Datenbank der Strafbefehle tatsächlich pro
Fall immer nur _ein_ Delikt referenziert, so dass beispielsweise
ein Autofahrer, der seine Frau würgt, danach ein Auto rechts
überholt und dabei kokst, in der Statistik nur als SVG-Delikt oder
vielleicht lediglich unter häusliche Gewalt auftaucht. Mir fällt
es schwer zu glauben, dass Datenbanken im profesionellen im Jahr
2022 noch nicht über Arrays verfügen...
Für so etwas haben die cli-Nerds(tm) Relationen erfunden...

In Deinem Fall sollte das Modell ohnehin eher so aussehen: Eine
Tabelle mit den möglichen Bussen und eine weitere, darauf
referenzierend, die jeweils Busse, Jahr und Anzahl enthält.
Ansonsten kommst Du spätestens nächstes Jahr mit neuen Wünschen
daher :-)

Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike

Vergnügen mit Stefan, lüstern und gross!
(Sloganizer)
Martin Τrautmann
2022-01-11 19:16:14 UTC
Permalink
Post by Stefan+ (Stefan Froehlich)
Genau das meinte ich oben: Das ist einfach kein typischer Einsatz
für eine Datenbank. Die verwendet man eher, wenn man zuerst relativ
lange darüber tüftelt, wie das Schema am besten aussieht und sie
dann häufig, aber zeitarm befüllt und/oder abfrägt.
Nein, ich pumpe einfach die Daten in eine Bank und verknüpfe sie nach
Belieben.
Patrick Rudin
2022-01-24 20:04:19 UTC
Permalink
Post by Stefan+ (Stefan Froehlich)
Post by Patrick Rudin
Eigentlich wollte ich ja bloss als Benutzer eine Datenbank
erstellen, csv importieren und dann Abfragen tätigen.
Lass es mich so formulieren: Wenn das Anlegen der Tabelle (anstatt
der automatischen Übernahme aus der CSV-Datei) bereits zu viel
Aufwand ist, dann lohnt sich die Datenbank für Dich noch nicht :-)
Mir ist inzwischen klargeworden, dass R eigentlich alles bietet, was ich
brauche, und nach etwas Tutorial-Lesen und Ausprobieren geht das recht
leicht von den Fingern. Mal abgesehen davon, dass Debian dazu mehr
Pakete mit Zusatzfunktionen anbietet, als ich in meinem Leben wohl
jemals ausprobieren kann.

Die Frage ist halt nun: Bietet Yadgar seine Verlustraten künftig als csv
an, und kriege ich irgendwo einen Datensatz mit Zeitreihen zur
Storchenpopulation in Afghanistan her?


Grüsse

Patrick
Patrick Rudin
2022-03-22 22:56:21 UTC
Permalink
Post by Martin Τrautmann
Was bedeutet A, AA, B?
Bei Tempo- und Parksünden gibt es eine weitere Differenzierung (Etwa ob
generelle Höchstgeschwindigkeit oder Zonenhöchstgeschwindigkeit), die
auch klar ist, wenn man den ganzen Text sieht. Auf der Homepage ist der
Text aber nur verkürzt wiedergegeben, darum das Zusatzfeld. Kurzum: Eher
unwichtige Zusatzdifferenzierung.

Bei "Nichtbeachten eines Lichtsignals" wurde offenbar fälschlicherweise
auch das Feld gelegentlich gesetzt, man kann es einfach ignorieren. Laut
einem Mitarbeiter des statistischen Amtes gibt es in diesem Punkt
jedenfalls keine weitere Unterscheidung.


Gruss

Patrick

Lesen Sie weiter auf narkive:
Loading...