norman: mysql: intervalle ausgeben

juten tach!

habt ihr einen plan wie man intervalle mit mysql ausgeben kann?

z.B: tabelle mit werten: 1,2,5,6,9 in dreier-intervallen ausgeben

mysql ausgabe-wunsch:

intervall,anzahl
1-3,2
4-7,2
8-11,1

etwa so, in pseudo - syntax:

select field(zahl,"1>= AND <4",">=4 AND < 8",..) as intervall, count(zahl) from tabelle

gruß
norman

  1. Hi Norman,

    suchst Du between? Bin aus Deiner Beschreibung nicht ganz schlau geworden.

    Bsp:
    Zahlen: 1,2,4,6,7,9,10,13,16,18

    gesuchte Zahl: 5
    Intervall: 1-10

    Pseudocode: Select * from <tabelle> Where <zahl> between <intervall1

    and <intervall2>

    Alternativ kannst Du auch eine Liste mit dem Operator 'IN' durchsuchen.

    ciao
    romy

    1. hi romy,

      so ähnlich, ich möchte zahlen zu gruppen (intervall) zusammenfassen, d.h. mehrere "betweens", und ein "count" auf das "between", also wie viele werte in dieses intervall fallen

      Zahlen: 1,2,4,6,7,9,10,13,16,18

      z.b.
      alle zahlen von 1-5, ergibt 3
      alle zahlen von 6-10, ergibt 4
      usw.

      in einer select-abfrage...

      gruß
      norman

      1. hi Norman,

        da du sie zählen willst und mit aggregat-funktionen arbeitest, musst du gruppieren, wenn du mehrere ergebnisse bekommen willst, eine aggregatfunktion liefert pro gruppe genau einen wert zurück.

        intervalle können meiner meinung nach nicht in gruppen zusammengefaßt werden, sondern nur datenfelder mit einer übereinstimmung über eine oder mehrere spalten. deshalb musst du dir vielleicht eine hilfsgruppierung zurecht "basteln", also zahlen vojn 1 bis 3 sind gruppe a, zahlen von 4 bis 7 gruppe b...

        Ilja

        1. genau die "bastelei" wollte ich umgehn, schade eigentlich. ich hab auch keine bessere lösung gefunden.

          danke trotzdem
          norman

          1. hi Norman,

            geht schon anders, zum beispiel alle daten auslesen und mit php sortieren. willst du es mit mysql lösen, dann zu weihnachten basteln. ;-)

            Ilja

            1. naja, ich versuche das problem mit perl und mysql zu lösen. ist eigentlich nicht schwer, aber nicht so schön wie mit einer kompakten select-abfrage ;-)

              gruß
              norman

              1. es geht sicherlich auch über eine kompakte sql anweisung, aber nicht ohne zu tricksen. der vorteil wäre, dass die scripte unabhängig von der sortierung wären, da alles über die datenbank gesteuert wird. ändert sich dort die zusammenstellung, ändert sie sich auch automatisch in den scripten. der nachteil wäre weitere spalten, wenn nicht sogar eine neue tabelle. auf der anderen seite kann man es auch durch scripte lösen und dort an einer ausgelagerten funktion/datei, um es zentral ändern zu können.

                Ilja