Задавайте вопросы, мы ответим
Вы не зашли.
Доброго времени суток!
Пожалуйста, помогите составить запрос.
Таблица: id, firm_id, cost, date, growth
id - просто порядковый номер строки
firm_id - от 1 до 10 указывает на фирму
cost - стоимость акций
date - дата изменения
growth - прирост относительно предыдущего значения (может быть отрицательным)
Как должен выглядеть запрос, если мне нужно получить по 10 значений для каждого firm_id?
Большое спасибо!!
Неактивен
1. по какому признаку выбираются 10 значений для каждого firm_id?
2.Одним запросом лучше не делать (см до конца http://sqlinfo.ru/forum/viewtopic.php?id=1742 )
SELECT DISTINCT firm_id FROM `table_name`; -- вернет список уникальных firm_id
потом в цикле для каждого firm_id
SELECT id, firm_id, cost, `date`, growth FROM `table_name` WHERE firm_id=.. ORDER BY `date` DESC LIMIT 10; -- 10 последних по дате изменения
Неактивен
vasya написал:
1. по какому признаку выбираются 10 значений для каждого firm_id?
2.Одним запросом лучше не делать (см до конца http://sqlinfo.ru/forum/viewtopic.php?id=1742 )
SELECT DISTINCT firm_id FROM `table_name`; -- вернет список уникальных firm_id
потом в цикле для каждого firm_id
SELECT id, firm_id, cost, `date`, growth FROM `table_name` WHERE firm_id=.. ORDER BY `date` DESC LIMIT 10; -- 10 последних по дате изменения
Большое спасибо за ответ! Вы совершенно верно решили - выборка будет именно по дате, 10 последних от самой свежей даты.
Получать ID не нужно, т.к. они просто от 1 до 10 - заранее известны.
Получается самое грамотное решение - это цикл от 1 до 10, и в сумме мы будем иметь 10 запросов?
p.s. пошел читать статью
Отредактированно nomn (01.10.2013 21:39:18)
Неактивен
Скорее всего самое грамотное - циклом. Ну или Вы можете инкапсулировать этот код, написав mysql-функцию, в которой будет этот цикл.
Обратите внимание на запрос, который здесь
Не оптимально, но без цикла.
Неактивен
Большое спасибо!! Задачу решил
Неактивен
Поделитесь, как именно? Вопрос такой часто поднимается насчет подгрупп в группах.
Неактивен