Maximum eines Quotienten aus zwei Einträgen

meioo

Neuer Benutzer
Beiträge
1
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
 
Werbung:

thomas_w

SQL-Guru
Beiträge
104
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
 
Oben