Задавайте вопросы, мы ответим
Вы не зашли.
Уважаемые коллеги , имеется таблица
`DATA` (
`id` int(10) unsigned NOT NULL auto_increment,
`SYMBOL` varchar(12) NOT NULL,
`price` decimal(15,6) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=325014140 DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;
хотелось бы посмотреть разницу значений столбца `price` для текущего и предыдущего значения.
То есть , рассуждаю , необходимо создать новую таблицу , скажем 'SPRED' в строки которой будут заноситься полученные значения разницы price - price[-1] .
Каким образом сиё организовать , может быть я усложняю и можно всё решить посредством SELECT ???
Неактивен
Неактивен
vasya написал:
set @x=0;
select price-@x, @x:=price from `data`;
Этот скрипт выодит не то что хотелось бы .
Строки таблицы имеют следующий вид
356837317, 'A', 354.1000
356837318, 'A', 354.1010
...
хотелось бы увидеть разницу полей price этих двух строк и так далее...
Неактивен
Первая колонка как раз и выводит искомую вами разницу полей price двух последовательных строк. Понятно, что в первой строчке будет разница price с нулем, т.е. само значение поля price.
Или вы имели в виду что-то другое?
Неактивен
Да спасибо , всё ОК! . Попробывал ввёл предложенный Вами запрос в MySQL Query Browser получил следующее
NULL, 273.2500
NULL, 273.3500
NULL, 273.2500
.....
И тот же скрипт в командной строке
+----------+-----------+
| price-@x | @x:=price |
+----------+-----------+
| 273.1300 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.0000 | 273.1300 |
| 0.1200 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.1500 | 273.4000 |
| -0.1500 | 273.2500 |
| 0.1500 | 273.4000 |
| -0.1500 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.1000 | 273.3500 |
| -0.1000 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.0000 | 273.2500 |
| 0.0500 | 273.3000 |
| 0.0000 | 273.3000 |
| -0.0500 | 273.2500 |
| 0.0000 | 273.2500 |
| -0.0200 | 273.2300 |
| 0.0000 | 273.2300 |
| -0.0300 | 273.2000 |
| -0.0900 | 273.1100 |
| -0.0100 | 273.1000 |
| -0.0800 | 273.0200 |
| 0.0000 | 273.0200 |
+----------+-----------+
Всё что и хотелось бы увидеть.
Ещё раз убеждаюсь в преимуществах работы с MySQL Command Line .
Неактивен
Query Browser разрывает соединение после выполнения каждой команды. А пользовательские переменные существуют в течении сессии, поэтому при выполнении второй команды переменная @x будет неопределена, т.е. иметь значение NULL.
Отсюда и такой результат в Query Browser.
Неактивен