2017-06-13 11 views
-1

私は、次の表を持っている:MySQLのsum関数の適切な使用

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

私は特定のSMILESの合計CompTime取得したい(Comptimeを意味するが、特定の笑顔のアルconfrankのために追加されます)。

私は次のことを試してみました:

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の句に従う必要があります。更新を次のように

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

downvoteを説明してください。 – BenM

0

あなたgroup by句はwhere句の後に表示されます。

0

はので、私は SELECT SMILESを使用し、以下、(SUM(CompTime))GeoAndEnergiesからWHERE SMILES INTO OUTFILE BYメソッド= 'PM6' GROUP「の/ var/libに/のmysql-ファイル/ data_PM6_timesum ";
と mysql> SELECT SMILES、(SUM(CompTime))GeoAndEnergies WHEREメソッドから 'PM6' GROUP BY SMILES INTO OUTFILE "/ var/lib/mysql-files/data_PM6_time"; とSELECT 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を盗むことによって、あなたが望むものを持っているはずです。