1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Maximum eines Quotienten aus zwei Einträgen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von meioo, 2 August 2010.

  1. meioo

    meioo Neuer Benutzer

    Hallo,
    ich habe eine Datenbank, wo ich unteranderem zwei integer Einträge habe (a und b). Nun möchte ich den/die identifier mit dem höchsten Quotienten ermitteln, die mit einem bestimmten Namen eingetragen sind.
    Ich habe folgendes versucht:
    Code:
    "SELECT IDENTIFIER FROM Database WHERE A = MAX((SELECT A FROM Database WHERE NAME = '"+name+"')/(SELECT B FROM Database WHERE NAME = '"+name+"')) AND NAME = '"+name+"'"
    
    bekomme damit aber leider eine "Invalid use of group function"-Exception.
    Kann mir bitte wer weiterhelfen.
    Vielen Dank!
    Grüße
     
  2. thomas_w

    thomas_w Datenbank-Guru

    AW: Maximum eines Quotienten aus zwei Einträgen

    Ich glaube, da geht eine Menge daneben.

    - Eine Datenbanktabelle kann nicht den Namen "Database" bekommen.
    - Die SQL-Syntax ist so nicht erlaubt

    Ich habe deshalb einen anderen Tabellennamen gewählt plus ein paar Testdaten

    Code:
    CREATE TABLE test_tabelle (
     a INT NOT NULL,
     b INT NOT NULL,
     identifier INT NOT NULL,
     name VARCHAR(50) NOT NULL
    );
     
    INSERT INTO test_tabelle VALUES
    ( 1, 1, 10, 'name-10'),
    ( 2, 2, 20, 'name-20'),
    ( 3, 3, 30, 'name-30');
    
    Eine Abfrage könnte nun so aussehen, wobei mir nicht wirklich klar geworden ist, was Du da machen möchtest.

    Code:
    SELECT identifier, MAX(a), MAX(b)
      FROM test_tabelle
     WHERE name = 'name-20'
    GROUP BY identifier; 
    +------------+--------+--------+
    | identifier | MAX(a) | MAX(b) |
    +------------+--------+--------+
    |         20 |      2 |      2 |
    +------------+--------+--------+
    1 row in set (0.00 sec)
    mysql>
    
    Grüße
    Thomas
     

Diese Seite empfehlen