Привет Я пытаюсь найти разницу между средним значением нескольких значений из одного столбца.Mysql - Выберите разницу в среднем из того же столбца
А вот схема.
CREATE TABLE `product_priceDiff` (
`mark` char(15) NOT NULL,
`markId` int(11) NOT NULL,
`found_date` date DEFAULT '0000-00-00',
`found_price` decimal(15,3) DEFAULT NULL,
`confirmation_date` date DEFAULT '0000-00-00',
`confirmed_price` decimal(15,3) DEFAULT NULL,
`price_difference` decimal(15,3) DEFAULT NULL,
`action` char(30) DEFAULT NULL,
PRIMARY KEY (`mark`,`markId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
А вот некоторые примеры значений
+------------------+----------+------------+-------------+-------------------+-----------------+------------------+--------+
| mark | markId | found_date | found_price | confirmation_date | confirmed_price | price_difference | action |
+------------------+----------+------------+-------------+-------------------+-----------------+------------------+--------+
| soap | 6 | 2014-01-13 | 0.410 | 2014-01-15 | 0.420 | 2.439 | BUY |
| lotion | 7 | 2013-09-13 | 0.000 | 2013-09-13 | 0.170 | 0.000 | BUY |
| shaving_cream | 8 | 2014-01-09 | 41.500 | 2014-01-10 | 42.000 | 1.205 | BUY | |
| hairgel | 19 | 2014-01-13 | 8.220 | 2014-01-16 | 8.190 | -0.365 | SELL |
| aftershaves | 20 | 2011-07-12 | 0.000 | 2011-07-12 | 7.500 | 0.000 | SELL |
| shampoo | 21 | 2014-01-14 | 46.870 | 2014-01-17 | 46.480 | -0.832 | SELL |
+------------------+----------+------------+-------------+-------------------+-----------------+------------------+--------+
Что я хочу найти это средняя разница в цене. Формула
Average(price_difference) @ BUY - Average(price_difference) @ SELL
я попытался сделать это, используя этот запрос, но он не работает на всех
SELECT
AVG(CASE WHEN `action` = "BUY" THEN `price_difference`)
- AVG(CASE WHEN `action` = "SELL" THEN `price_difference`)
FROM `product_priceDiff`;
Это дает мне ошибку
ERROR 1064 (42000): Вы ошибка в синтаксисе SQL; проверить руководство, которое соответствует Вашей версии сервера MySQL для синтаксиса право использовать вблизи «действие =„BUY“, то price_difference) - ср (случай , когда действие =„SELL“, то цена» в строке 1
Просьба представить какие-либо советы о том, что я должен сделать, чтобы получить требуемые значения Спасибо, заранее
Maxx
вас youst miss'END'statement по делу: 'случай, когда ТОГДА –
Melon
END' Да что работал ошибка прошло. – Maxx