2017-06-13 5 views
-1

Ich habe die folgende Tabelle:Der richtige Einsatz von MySQL Summenfunktion

Field   | Type     | Null | Key | Default | Extra | 
+-----------------+----------------------+------+-----+---------+-------+ 
| SMILES   | char(200)   | NO | PRI |   |  | 
| ConfRank  | smallint(5) unsigned | NO |  | NULL |  | 
| CompTime  | double    | YES |  | NULL |  | 

Ich mag die Gesamt CompTime für ein bestimmtes SMILES erhalten (Comptime für al confrank ein bestimmtes Lächeln bedeutet hinzugefügt).

Ich habe versucht, die folgenden:

SELECT SMILES,(SUM(CompTime)) From GeoAndEnergies GROUP BY ConfRank WHERE SMILES='C'; 

Und diesen Fehler erhalten:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' WHERE SMILES='C' ' at line 1

ich auch versucht:

SELECT SMILES,(SUM(CompTime)) From GeoAndEnergies GROUP BY ConfRank WHERE SMILES='C' GROUPBY ConfRank ; 

Und ein anderer Fehler erhalten:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' WHERE SMILES='C' GROUPBY ConfRank ' at line 1

Was wäre die korrekte Syntax?

Antwort

0

versuchen die folgende

SELECT SMILES,(SUM(CompTime)) From GeoAndEnergies WHERE SMILES='C' GROUP BY ConfRank; 
+0

Perfekt, danke! – Laetis

+0

wo ist Ihr Methodenfeld in Ihrer Tabelle –

-1

Ihre GROUP BY sollte der WHERE Klausel folgen. Update wie folgt:

SELECT `SMILES`, 
     SUM(`CompTime`) 
    FROM `GeoAndEnergies` 
    WHERE `SMILES` = 'C' 
GROUP BY `ConfRank`; 
+0

Bitte erläutern Sie den Downvote. – BenM

0

Ihre group by Klausel nach where Klausel erscheinen soll.

0

so habe ich SELECT SMILES (SUM (CompTime)) Von GeoAndEnergies WHERE Method = 'PM6' GROUP BY SMILES INTO OUTFILE „/ var/lib/mysql-files/data_PM6_timesum ";
und mysql> SELECT SMILES, (SUM (CompTime)) Von GeoAndEnergies WHERE Methode = "PM6" GROUP VON SMILES IN OUTFILE "/ var/lib/mysql-files/data_PM6_time"; und SELECT SMILES, NRotBond, NHeavyAtom Von GeoAndEnergies WHERE Methode = 'PM6' UND ConfRank = 1 IN OUTFILE "/ var/lib/mysql-Dateien // data_PM6_rotheavy"; , um data_PM6_rotheavy und data_PM6_time zu erstellen. Durch die Katze 2 sollten Sie haben, was Sie wollen.