2017-06-13 45 views
-1

我有如下表:正確使用MySQL的總和功能

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

我想要得到一個特定的SMILES(意COMPTIME添加特定的笑容人confrank)總COMPTIME。

我試過如下:

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

而且收到此錯誤:

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

我也試過:

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

並得到了另一個錯誤:

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

什麼是正確的語法?

回答

0

嘗試以下

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

完美,謝謝! – Laetis

+0

其中是您的表格中的方法字段 –

-1

您的GROUP BY應該遵循WHERE條款。更新內容如下:後where條款

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

請解釋downvote。 – BenM

0

group by條款應該會出現。

0

所以我用 SELECT SMILES,(SUM(COMPTIME))從GeoAndEnergies其中,方法= 'PM6' GROUP BY SMILES INTO OUTFILE「的/ var/lib中/ MySQL的,文件/ data_PM6_timesum「;
and mysql> SELECT SMILES,(SUM(CompTime))From GeoAndEnergies WHERE Method ='PM6'GROUP BY SMILES INTO OUTFILE「/ var/lib/mysql-files/data_PM6_time」; 和SELECT SMILES,NRotBond,NHeavyAtom From GeoAndEnergies WHERE Method ='PM6'AND ConfRank = 1 INTO OUTFILE「/ var/lib/mysql-files // data_PM6_rotheavy」; 創建data_PM6_rotheavy和data_PM6_time。 通過捕獲2你應該有你想要的。