2016-06-19 10 views
0

です。グローニンゲンの家の平均価格を計算する必要があります。 価格は数字ではなく文字列(いくつかの追加情報を含む)として保存されますが、ポイント( '。')を桁区切り文字として使用します。 価格は 'Vraagprijs'としてオランダ語で保存されています。MYSQLの平均価格は

テーブルの結果は以下のとおりです。

€ 95.000 k.k. 

€ 116.500 v.o.n. 

€ 115.000 v.o.n. 

というように行く...

マイクエリ: 209.47509187620884 しかし、それはすることがあります。

'$'SELECT AVG(SUBSTRING(value,8,8)) AS AveragePrice_Groningen 
    FROM properties 
    WHERE name = 'vraagprijs' 
    AND EXISTS (SELECT * 
    FROM estate 
    WHERE pc_wp LIKE '%Groningen%' 
    AND properties.woid = estate.id); 

は、結果は次のとおりです。

20947509187620,884

どうすればいいですか?

+0

**に変更します。グローニンゲンの住宅価格はロンドンよりも高いです! – Strawberry

答えて

0

はあなたが彼らの英語で、通常のオランダ語で正常であり、小数点区切りとして.でデータを入力し、ではなく、文字列の右側の一部を取得する

'$' 
SELECT AVG(CAST(SPLIT_STR(value,' ', 2)) AS DECIMAL) AS AveragePrice_Groningen 
FROM properties 
WHERE name = 'vraagprijs' 
AND EXISTS (SELECT * 
FROM estate 
WHERE pc_wp LIKE '%Groningen%' 
AND properties.woid = estate.id); 
+0

これを使用してエラーが発生します。 – mrobertini1239

+0

このエラーは正確なエラーメッセージを表示します – scaisEdge

+0

私はsubstrの代わりにsplitを使って答えを更新しました。 – scaisEdge

0

ためCASTのDECIMALとSPLITを使用してみてください小数点記号として,を使用する傾向があります。

データベースに215000.000などのデータを入力します。通常の値を回答として取得する必要があります。

+0

ええ、私はこのようにデータベースを受け取りました。 – mrobertini1239

1

AVG(SUBSTRING(値、8,8)) dosent作品:

サンプル

MariaDB [yourSchema]> SELECT *,SUBSTRING(`value`,8,8), SUBSTRING_INDEX(SUBSTRING_INDEX(`value`, ' ', -2),' ',1) FROM properties; 
+----+-----------------------+------------------------+----------------------------------------------------------+ 
| id | value     | SUBSTRING(`value`,8,8) | SUBSTRING_INDEX(SUBSTRING_INDEX(`value`, ' ', -2),' ',1) | 
+----+-----------------------+------------------------+----------------------------------------------------------+ 
| 1 | € 95.000 k.k. | 95.000 k    | 95.000             | 
| 2 | € 116.500 v.o.n. | 116.500    | 116.500             | 
| 3 | € 115.000 v.o.n. | 115.000    | 115.000             | 
+----+-----------------------+------------------------+----------------------------------------------------------+ 
3 rows in set (0.00 sec) 

MariaDB [yourSchema]> 

は**うわー

AVG(SUBSTRING_INDEX(SUBSTRING_INDEX(`value`, ' ', -2),' ',1))