hotti: Zwei Zustände in einer Abfrage abfragen

jow,

eine Spalte/Feld hat entweder eine 0 oder eine 1. Gesucht ist die Anzahl der Records mit 0 und die Anzahl derer mit 1 in diesem Feld. Z.Z. mache ich zwei Abfragen, geht das auch mit Einer?

Hotti

  1. Moin,

    eine Spalte/Feld hat entweder eine 0 oder eine 1. Gesucht ist die Anzahl der Records mit 0 und die Anzahl derer mit 1 in diesem Feld. Z.Z. mache ich zwei Abfragen, geht das auch mit Einer?

    Wenn die Gesamtanzahl bekannt ist (ohne Abfrage) dann ja:

    Anzahl1 = Gesamtanzahl - Anzahl0 (und umgekehrt).

    Sonst nein.

    Gruß,
    Take

    1. Moin,

      Sonst nein.

      Bzw. kommt drauf an, was du als Abfrage ansiehst.

      Gruß,
      Take

  2. Hi,

    eine Spalte/Feld hat entweder eine 0 oder eine 1. Gesucht ist die Anzahl der Records mit 0 und die Anzahl derer mit 1 in diesem Feld. Z.Z. mache ich zwei Abfragen, geht das auch mit Einer?

    Stichworte: COUNT, GROUP BY

    MfG ChrisB

    --
    RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
    1. hi,

      eine Spalte/Feld hat entweder eine 0 oder eine 1. Gesucht ist die Anzahl der Records mit 0 und die Anzahl derer mit 1 in diesem Feld. Z.Z. mache ich zwei Abfragen, geht das auch mit Einer?

      Stichworte: COUNT, GROUP BY

      Ohh mann, ChrisB, klar ;-)

      Danke Dir!!!!

      Hotti

      1. Hoi!

        Manchmal sind die Bäume schon der Wald. :D

        --
        Signaturen sind blöd!
        1. Moin;

          Manchmal sind die Bäume schon der Wald. :D

          Zwei Wüstlinge unterhalten sich über Stellungen. Ungefähr bei 300 angelangt, kommt ein Wanderer des Weges und beschreibt die Missionarsstellung. Die Zwei gucken sich an und der Eine sagt "Ach du Sch*, so gehts ja auch".

          Schönen Tach heute ;-)
          Hotti

    2. eine Spalte/Feld hat entweder eine 0 oder eine 1. Gesucht ist die Anzahl der Records mit 0 und die Anzahl derer mit 1 in diesem Feld. Z.Z. mache ich zwei Abfragen, geht das auch mit Einer?

      Stichworte: COUNT, GROUP BY

      Eine Alternative wäre noch 2x COUNT mit jeweils mit WHERE auf 0 oder 1 eingeschränkt und dann per UNION - zusammenfassen. Das ist auch "eine Abfrage" aber dreckig ;)

      1. Eine Alternative wäre noch 2x COUNT mit jeweils mit WHERE auf 0 oder 1 eingeschränkt und dann per UNION - zusammenfassen. Das ist auch "eine Abfrage" aber dreckig ;)

        Das ist nicht dreckig, das ist gegen die Genfer Konventionen fuer Cyberwarfare...

        --
        Signaturen sind blöd!
        1. Eine Alternative wäre noch 2x COUNT mit jeweils mit WHERE auf 0 oder 1 eingeschränkt und dann per UNION - zusammenfassen. Das ist auch "eine Abfrage" aber dreckig ;)

          Das ist nicht dreckig, das ist gegen die Genfer Konventionen fuer Cyberwarfare...

          Eine schmutzige SQL-Bombe sozusagen :p

          1. Eine Alternative wäre noch 2x COUNT mit jeweils mit WHERE auf 0 oder 1 eingeschränkt und dann per UNION - zusammenfassen. Das ist auch "eine Abfrage" aber dreckig ;)

            Das ist nicht dreckig, das ist gegen die Genfer Konventionen fuer Cyberwarfare...

            Eine schmutzige SQL-Bombe sozusagen :p

            Ach was, SQL ist nur der Zünder. Mit SELECT * wird zunächst die ganze Tabelle auf eine zweckmäßige Variable gelesen, am Besten auf einen String und dann gehts dran, eine passende Regular-Expression zu finden um das gewünschte Ergebnis zu erhalten. Von Vorteil ist es, dass nichts zurückgeschrieben werden muss in diesem Fall. Bevor es jedoch mit RegExn auf das Ding losgeht, lassen wir es erstmal mit explode() richtig krachen, in der Hoffnung, die Bruchstücke nach der Gausschen Normalverteilung auf der Festplatte wiederzufinden. Erst dann: Reg-Echsen, aber Vorsicht, die fressen angeblich CPU. Bit-Operatoren müssen wir hoffentlich nicht anwenden (diese Vorlesungen waren samstags und da mussten wir immer arbeiten wegen der Kohle fürs Bier). Das Ergebnis muss dann noch irgendwie geschönt werden, aber wir haben ja noch das Marke-Up (oder wie das Teufelzeug heißt). Mit Javascript werden wir auf jeden Fall noch eine Druckfunktion einbauen, denn, wie heißt es doch so schön:

            Was Du schwarz auf weiß besitzt, kannst Du getrost nach Hause tragen ;-)

            SCNR;)

      2. Hi!

        eine Spalte/Feld hat entweder eine 0 oder eine 1. Gesucht ist die Anzahl der Records mit 0 und die Anzahl derer mit 1 in diesem Feld.
        Eine Alternative wäre noch 2x COUNT mit jeweils mit WHERE auf 0 oder 1 eingeschränkt und dann per UNION - zusammenfassen. Das ist auch "eine Abfrage" aber dreckig ;)

        Dann besser SUM(feld) und SUM(!feld).

        Lo!

        1. Hi,

          Hi!

          eine Spalte/Feld hat entweder eine 0 oder eine 1. Gesucht ist die Anzahl der Records mit 0 und die Anzahl derer mit 1 in diesem Feld.
          Eine Alternative wäre noch 2x COUNT mit jeweils mit WHERE auf 0 oder 1 eingeschränkt und dann per UNION - zusammenfassen. Das ist auch "eine Abfrage" aber dreckig ;)

          Dann besser SUM(feld) und SUM(!feld).

          Mach ich auch immer so*, weil die Ergebnismenge einfacher abzufragen ist: wenn man weiß, dass genau eine Ergebniszeile kommt, dann kann ich diese direkt abfragen. Wenn zwei kommen, dann muss ich beide abrufen und dann noch unterscheiden, welche Zeile zu welchem COUNT gehören (und noch zusätzliche die Information zur Identifikation der Zeile mitsenden), oder sortieren.

          *: bis auf den Unterschied, dass ich es mit SUM(IF(...)) formuliere, weil ich das meist mit mehr als nur zwei Werten mache.
          Bis die Tage,
          Matti