Forum Doku Wiki Blog

Forumsarchiv 2007, Januar
mysql - summenbildung?

archivierte Beiträge lesen

  1. (DATENBANK) mysql - summenbildung? von theres, 25. 01. 2007, 12:16

mysql - summenbildung?

Der folgende Beitrag wurde am 25. 01. 2007, 12:16 Uhr von theres veröffentlicht.

hallo ihr lieben,

für eine statistik habe ich folgende tabelle in mysql:
+-----+---------+
| tag | bereich |
+-----+---------+
|  1  |   1     |
|  1  |   1     |
|  1  |   1     |
|  3  |   2     |
|  2  |   2     |
|  2  |   3     |
|  2  |   4     |
|  2  |   4     |
+-----+---------+

ich möchte nun feststellen, welcher tag am meisten einträge hat(1)
und welcher bereich im gesamten pro tag(2) am häufigsten einträge hat.

(1)
mit folgender abfrage finde ich den tag mit den meisten einträgen raus:
select tag, count(*) as c from table group by tag order by c desc limit 1

(2)
ich schaffs nicht, die abfrag so abzuwandeln, dass ich damit die bereiche abfragen kann.
das ergebnis sollte in diesem fall tag 1, bereich 1 sein.

danke für eure hilfe,
die theresa

mysql - summenbildung?

Der folgende Beitrag wurde am 25. 01. 2007, 14:23 Uhr von Reiner veröffentlicht.

> hallo ihr lieben,
>
> für eine statistik habe ich folgende tabelle in mysql:
> +-----+---------+
> | tag | bereich |
> +-----+---------+
> |  1  |   1     |
> |  1  |   1     |
> |  1  |   1     |
> |  3  |   2     |
> |  2  |   2     |
> |  2  |   3     |
> |  2  |   4     |
> |  2  |   4     |
> +-----+---------+
>
> ich möchte nun feststellen, welcher tag am meisten einträge hat(1)
> und welcher bereich im gesamten pro tag(2) am häufigsten einträge hat.

> (2)
> ich schaffs nicht, die abfrag so abzuwandeln, dass ich damit die bereiche abfragen kann.
> das ergebnis sollte in diesem fall tag 1, bereich 1 sein.


select tag, bereich, count(*) as c from table group by tag, bereich order by tag asc, c desc

Gruß
Reiner

mysql - summenbildung?

Der folgende Beitrag wurde am 25. 01. 2007, 20:38 Uhr von Ilja veröffentlicht.

yo,

der ORDER BY im zusammenhang mit LIMIT ist eine falle, in die immer wieder gerne unter mysql hineingelaufen wird. grundsätzlich ist die LIMIT klausel eine sehr feine sache. aber man übersieht dadurch leider immer eine paar probleme.

wovon ich rede ist, dass du mit dem LIMIT 1 nur einen datensatz abgreifen wirst. wenn nun aber 2 tage oder für die zweite abfrage tage, bereiche den gleichen wert haben und auch noch das maximum darstellen, dann fällt einer der beiden unter dem tisch.

das wäre so, als wenn es zwei goldmedaillien gewinner gibt, weil sie die gleiche zeit gelaufen sind oder gleich weit geworfen haben, du aber nur einem die goldene medaille vergibst. da würde sich eventuell einer aufregen...

Ilja

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4