正确使用mysql sum函数

时间:2017-06-13 10:01:01

标签: mysql

我有下表:

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

我想得到特定SMILES的总CompTime(意味着Comptime被添加为特定微笑的混淆)。

我尝试了以下内容:

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

并收到此错误:

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   在第1行“WHERE SMILES='C'”附近使用的语法

我也尝试过:

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

又收到了另一个错误:

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   在第1行“WHERE SMILES='C' GROUPBY ConfRank”附近使用的语法

正确的语法是什么?

4 个答案:

答案 0 :(得分:0)

您的group by子句应出现在where子句之后。

答案 1 :(得分:0)

尝试以下

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

答案 2 :(得分:0)

所以我用过 SELECT SMILES,(SUM(CompTime))来自GeoAndEnergies WHERE Method =' PM6' GROUP BY SMILES INTO OUTFILE" / var / lib / mysql-files / data_PM6_timesum" ;
和 MySQL的> SELECT SMILES,(SUM(CompTime))来自GeoAndEnergies WHERE Method =' PM6' GROUP BY SMILES INTO OUTFILE" / var / lib / mysql-files / data_PM6_time" ;  和选择SMILES,NRotBond,NHeavyAtom来自GeoAndEnergies WHERE方法=' PM6' AND ConfRank = 1 INTO OUTFILE" / var / lib / mysql-files // data_PM6_rotheavy" ; 创建data_PM6_rotheavy和data_PM6_time。 通过捕捉2你应该拥有你想要的东西。

答案 3 :(得分:-1)

您的GROUP BY应遵循WHERE条款。更新如下:

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